zoukankan      html  css  js  c++  java
  • 【牛客练习赛53】A-超越学姐爱字符串

    // 题目地址:https://ac.nowcoder.com/acm/contest/1114/A
    /*
        找规律(碰运气)
        n:1 = 2
        n:2 = 3
        n:3 = 5
        n:4 = 8
        ...
    
        dp解法(参考牛客题解)
        dp[i][0]:长度为 i, 字符最后一个字符为'c'的情况数
        dp[i][1]:长度为 i, 字符最后一个字符为'y'的情况数
        则有:
            dp[i + 1][0] = dp[i][1]; 即每个以'p'结尾的字符串都可以加个'c'(保证不会有'c'连续)
            dp[i + 1][1] = dp[i][1] + dp[i][0]; 'p'的限制没'c'大,所以在任何字符串后面加'p'都可
    */
    #include<iostream>
    #include<cstdio>
    using namespace std;
    
    typedef long long LL;
    const int mod = 1e9 + 7;
    const int inf = 100000;
    int n;
    //LL num[100005];
    LL dp[100005][2];
    
    //void init(){
    //    num[1] = 2; num[2] = 3;
    //    for(int i = 3; i <= inf; i++){
    //        num[i] = (num[i - 1] + num[i - 2]) % mod;
    //    }
    //}
    
    void workindp(){
        dp[1][0] = dp[1][1] = 1;
        for(int i = 2; i <= inf; i++){
            dp[i][0] = dp[i - 1][1];
            dp[i][1] = (dp[i - 1][1] + dp[i - 1][0]) % mod;
        }
    }
    
    int main()
    {
    //    init();
        workindp();
        while(~scanf("%d", &n)){
    //        printf("%lld
    ", num[n]);
            printf("%lld
    ", (dp[n][0] + dp[n][1]) % mod);
        }
        return 0;
    }
    
    
  • 相关阅读:
    学习Linux shell脚本中连接字符串的方法
    使用 ffmpeg 转换视频格式
    一点不懂到小白的linux系统运维经历分享
    linux利用scp远程上传下载文件/文件夹
    angular ui-select
    JavaScript sort()方法
    js性能优化
    layer弹出层
    JS复制对象
    某天修改了啥bat批处理
  • 原文地址:https://www.cnblogs.com/Ayanowww/p/12013522.html
Copyright © 2011-2022 走看看