题解 | #小红蹦跳蹦跳#

小红蹦跳蹦跳

https://www.nowcoder.com/practice/6f4a93135cc54f4ba840947691efa053

将left[i]定义为左脚到达第i阶,right[i]定义为右脚到达第i阶。可得

整理得

根据公式便可得出结果

#include<iostream>
#include<vector>
using namespace std;

const int MOD  = 1e9 + 7;
int main() {
    int n;
    cin >> n;
    vector<long long>left(n+5,0);
    vector<long long>right(n+5,0);
    left[1]=1;
    left[2]=0;
    right[1]=0;
    right[2]=1;
    for(int i=3;i<=n;i++){
        left[i]=(right[i-1]+left[i-2])%MOD;
        right[i]=(left[i-2]+right[i-2])%MOD;
    }
    long long res=(left[n]+right[n])%MOD;
    cout<<res<<endl;
    return 0;
}
全部评论

相关推荐

给🐭🐭个面试机会...:我擦seed✌🏻
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务