zoukankan      html  css  js  c++  java
  • GDUT 初赛 01串也疯狂之光棍也有伴

    Problem A: 01串也疯狂之光棍也有伴

    Description

    话说春节那天,小明和晓明在实验室刷题。刷着刷着小明认为累了,就邀请晓明一起看春晚。晓明认为小明非常无聊。不想理小明,可是小明非常会磨嘴皮子,晓明耐不住小明的胡嘴蛮缠。于是和小明一起看起春晚来。

    小明顿时认为倍儿爽啊!

    但是一看,“wocao”,“最炫小苹果”,小明顿时认为非常伤心。

    “连小苹果都有伴了。。

    。呜呜。。。

    。” 晓明看到小明哭了。就想安慰他。但是怎么安慰呢!

      
    晓明陷入了沉思。忽然,晓明灵光一闪,想借一下出题名义,让小明开心起来。

    于是晓明对小明说,既然小苹果都有伴了,那我们两光棍离脱单也不远了吧。 。

    。。

    。噼噼啪啦,晓明对小明说不然我们也来让光棍有个伴吧! 正好。正值我们学校的校赛,我们就以光棍为名。来出一道题。

    小明听到要出题,立刻起了劲。。。

    他们觉得“11”是光棍成双成对的标志,于是, 小明和晓明想问下你们,对于一个长度为n的01串,究竟有多少串是含有“11”子串的呢? 。

    。。聪明的你,相信你已想到怎么AC了。

     
    比如长度为2的有“11”一个符合条件的01串。  
            长度为3的有“111”。“110”,“011”三个符合条件的串;

            长度为4的有“1111”,“1101”。“1100”,“0011”,“1011”,“0111”,“0110”,“1110”八个符合条件的串。

    Input

     有T组数据输入。(T<=1000); 
     每组数据仅仅有一行,一个正整数n(1<=n<=10^6)

    Output

    对于每组数据输出一行结果,对1000000007取模。

    Sample Input

    3145

    Sample Output

    0819




    #include <iostream>
    #include <stdio.h>
    #include <string>
    #include <cstring>
    #include <algorithm>
    #include <cmath>
    #define N 1000009
    #define mod 1000000007
    using namespace std;
    int dp[N][5];//表示长度为n的串最后一位为0或者1时不能组成11串的个数
    int a[N];
    
    int main()
    {
        int t,n;
    
        memset(dp,0,sizeof dp);
        dp[1][0]=dp[1][1]=1;
        a[1]=2;
    
        for(int i=2;i<=N;i++)
        {
            dp[i][0]=dp[i-1][0]+dp[i-1][1];
            if(dp[i][0]>=mod)
            dp[i][0]-=mod;
    
            dp[i][1]=dp[i-1][0];
            a[i]=(a[i-1]*2)%mod;
        }
    
     /*       for(int i=1;i<=5;i++)
    	{
    		printf("%d %d
    ",a[i],dp[i][0]+dp[i][1]);
    	}
    2 2
    4 3
    8 5
    16 8
    32 13
    */
    
        while(~scanf("%d",&t))
        {
    
            while(t--)
            {
                scanf("%d",&n);
                int ans;
                ans=(a[n]-(dp[n][0]+dp[n][1])%mod);
    
                ans=(ans%mod+mod)%mod;//ans可能会出现小于0的情况,所以要加上mod后再取模
    
                printf("%d
    ",ans);
            }
    
        }
    
        return 0;
    }
    





  • 相关阅读:
    C#--C/S--学员管理系统--6--班级和下拉框的数据绑定
    C#--C/S--学员管理系统--5--通用验证类的设计和程序退出
    1046. 最后一块石头的重量
    1029. 两地调度
    1005. K 次取反后最大化的数组和
    944. 删列造序
    874. 模拟行走机器人
    860. 柠檬水找零
    map按值排序
    map按键排序
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/6999223.html
Copyright © 2011-2022 走看看