poj 1953 world cup noise

题目大意:给出一个数n,求n位二进制中有多少个数不包含相邻的1。

思路:推出前3项后就可以发现满足斐波那契数列。先用数组记录下1~n位的结果,再通过输入的值访问相应下标的元素的值即可。

#include<iostream>
#include<stdio.h>
#include<string.h>

using namespace std;
int bit[50];

void calc()
{
    int i;
    bit[1]=2;
    bit[2]=3;//将特殊的两个值记录
    for(i=3;i<50;i++)
        bit[i]=bit[i-1]+bit[i-2];//先产生50位的结果,由于用数组记录,所以不需要通过递归进行多余的重复计算(动态规划)
    /*if(a[m]!=0)
        cnt=a[m-1]+a[m-2];
    else{
        cnt=calc(m-1)+calc(m-2);
        a[k++]=cnt;*/

}
int main(){
    int t,flag=0;
    cin>>t;
    calc();
    while(t--)
    {
        int s;
        cin>>s;
        flag++;

        printf("Scenario #%d:\n",flag);
        printf("%d\n\n",bit[s]);//访问相应的下标即可

    }
    return 0;
}
时间: 2024-12-15 06:56:24

poj 1953 world cup noise的相关文章

poj - 1953 - World Cup Noise(dp)

题意:n位长的01序列(0 < n < 45),但不能出现连续的两个1,问序列有多少种. 题目链接:http://poj.org/problem?id=1953 -->>设dp[i][j]表示前 i 位中第 i 位为 j 时的序列数,则状态转移方程为: dp[i][0] = dp[i - 1][0] + dp[i - 1][1]; dp[i][1] = dp[i - 1][0]; 因为对于相同的n,其结果是固定的,所以可以对一个n只计算一次,然后记住她.. #include <

poj 动态规划DP - 1953 World Cup Noise

这一题其实就是斐波那契数列,但是我一开始用的是DP,不过应该思想差不多. 一数组dp[i][2],dp[i][0]代表前i个数里面最后一个数字为0的数量,dp[i][1]代表前i个数里面最后一个数字为1的数量,可知dp[i][1]+dp[i][0]就是前i个数能组成序列的数量. 这里因为不能2个1在一起,所以: dp[i][0] = dp[i-1][0]+dp[i-1][1] dp[i][1] = dp[i-1][0] #include<stdio.h> #include<string.

POJ1953 World Cup Noise

这题纯暴力会超时,只需简单推一下递推公式即可,其实就是一个斐波拉契数列. World Cup Noise Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 15937   Accepted: 7861 Description Background "KO-RE-A, KO-RE-A" shout 54.000 happy football fans after their team has reached the

poj 3117 World Cup(简单数学题)

题目链接:http://poj.org/problem?id=3117 World Cup Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8634   Accepted: 4327 Description A World Cup of association football is being held with teams from around the world. The standing is based on

Poj 3117 World Cup

1.Link: http://poj.org/problem?id=3117 2.Content: World Cup Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8778   Accepted: 4406 Description A World Cup of association football is being held with teams from around the world. The standin

UVa 10450 - World Cup Noise

题目:构造一个01串,使得其中的1不相邻,问长度为n的串有多少中. 分析:数学,递推数列. 设长度为n的串有n个,则有递推关系:f(n)= f(n-1)+ f(n-2): 长度为n的结束可能是0或者1: 如果结束是0,则前面是0或者是1都可以所以是f(n-1): 如果结束是1,则前面的必然是0,则更前面的随意,所以是f(n-2): 这显然是Fib的递推公式,f(n)= Fib(n+1). 说明:用long long防止溢出. #include <iostream> #include <c

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

ACM训练方案-POJ题目分类

ACM训练方案-POJ题目分类 博客分类: 算法 ACM online Judge 中国: 浙江大学(ZJU):http://acm.zju.edu.cn/ 北京大学(PKU):http://acm.pku.edu.cn/JudgeOnline/ 杭州电子科技大学(HDU):http://acm.hdu.edu.cn/ 中国科技大学(USTC):http://acm.ustc.edu.cn/ 北京航天航空大学(BUAA)http://acm.buaa.edu.cn/oj/index.php 南京

转载:poj题目分类(侵删)

转载:from: POJ:http://blog.csdn.net/qq_28236309/article/details/47818407 按照ac的代码长度分类(主要参考最短代码和自己写的代码) 短代码:0.01K–0.50K:中短代码:0.51K–1.00K:中等代码量:1.01K–2.00K:长代码:2.01K以上. 短:1147.1163.1922.2211.2215.2229.2232.2234.2242.2245.2262.2301.2309.2313.2334.2346.2348