zoukankan      html  css  js  c++  java
  • 3-计算01串

    /*描述

        ACM的zyc在研究01串,他知道某一01串的长度,但他想知道不含有“11”子串的这种长度的01串共有多少个,他希望你能帮帮他。

        注:01串的长度为2时,有3种:00,01,10。

    输入
        第一行有一个整数n(0<n<=100),表示有n组测试数据;
        随后有n行,每行有一个整数m(2<=m<=40),表示01串的长度;
    输出
        输出不含有“11”子串的这种长度的01串共有多少个,占一行。
    样例输入

        2
        2
        3

    样例输出

        3
        5
    */


    #include <iostream>
    using namespace std;
    int dp[50];

    int fun(int m){
        if(m == 0)
            return dp[m] = 0;
        if(m == 1)
            return dp[m] = 2;
        if(m == 2)
            return dp[m] = 3;
        if(m == 3)
            return dp[m] = 5;
        return dp[m] = fun(m - 1) * 2 - fun(m - 3); //加一位数增加2倍,但要减去不合格的,往前考虑 三位就刚好可以递推
    }

    int main(){
        int n;
        cin >> n;
        while(n--){
            int m;
            cin >> m;
            cout << fun(m) << endl;
        }
        return 0;
    }

  • 相关阅读:
    bootstrap的引用和注意事项
    css样式表的知识点总结
    数据去重宏脚本
    redis总结
    list对象中根据两个参数过滤数据
    dt常用类
    C#删除字符串最后一个字符的几种方法
    C#的split分割的举例
    数据库优化的几个注意点
    两种转换城市的方式
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/7384360.html
Copyright © 2011-2022 走看看