题解 | #舔狗舔到一无所有#

舔狗舔到最后一无所有

https://ac.nowcoder.com/acm/problem/20875

简单dp问题,dp[i]代表前i天有多少种方案,分两种情况:

1、第i天的饭菜与第i-2天的饭菜不同,那么前i天有dp[i-2]*2种方案

2、第i天的饭菜与第i-1天的饭菜不同,那么前i天有dp[i-1]*2种方案

因此前i天共计dp[i-1]*2+dp[i-2]*2,在这中包含都不同的情况

#include <bits/stdc++.h>
#define size 100100
const int MOD=1e9+7;
using namespace std;
long long dp[size],n,m;
int main(){
    dp[1]=3,dp[2]=9;
    for (int i=3;i<size;i++){
        dp[i]=(dp[i-1]*2%MOD+dp[i-2]*2%MOD)%MOD;
    }
    scanf("%lld",&m);
    while (m--){
        scanf("%lld",&n);
        printf("%lld\n",dp[n]);
    }
    system("pause");
    return 0;
}
全部评论

相关推荐

程序员牛肉:你这其实一点都没包装,标准的流水线产品。 实习现在不一定能解决你的问题,你太浮躁了。你看了多少源码?看了多少技术博客?真的没必要这么浮躁的着急找实习,沉下心来学习
投递实习岗位前的准备
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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