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;
    }
    
    
  • 相关阅读:
    委托与事件
    JSON
    JavascriptBoolean运算符
    SQL执行字符串
    ref和out与SQL中的output
    早绑定、晚绑定
    浅复制和深复制
    Android Fragments 详细使用
    Android 两种为自定义组件添加属性的使用方法和区别
    Gallery 3D+倒影 滑动切换图片示例(转)
  • 原文地址:https://www.cnblogs.com/Ayanowww/p/12013522.html
Copyright © 2011-2022 走看看