zoukankan      html  css  js  c++  java
  • 01串

    第一部分:题目

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=252

    01串

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
     
    描述

    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 n;
    int main()
    {
        int t;
        cin>>t;
        int dp[1000];
        dp[1]=2;
        dp[2]=3; 
        while(t--)
        {
            cin>>n;
            if(n>2)
            {
                //最后一个字符只能是0或者1.为1时说明倒数第二个必定是0.
                //也就写成了n-1长度时的串+0,n-2长度时的串+01. 
                for(int i=3;i<=n;i++)
                {
                    dp[i]=dp[i-1]+dp[i-2];
                }
            }
            cout<<dp[n]<<endl;
        }
        return 0;
    }
  • 相关阅读:
    DHCP DHCPv6
    DHCPv6协议
    IPv6邻居发现协议
    CentOS下禁止防火墙
    centOS下更新yum源
    centOS下yum报错
    Flink+Kafka整合的实例
    Flink基本概念
    Ubuntu16.04下配置ssh免密登录
    Zookeeper+Kafka的单节点配置
  • 原文地址:https://www.cnblogs.com/xiangguoguo/p/5459048.html
Copyright © 2011-2022 走看看