http://poj.org/problem?id=1953

题目大意:给定一个正整数n,确定该长度的不同吟唱模式的数量,即确定不包含相邻1的n位序列的数目。例如,对于n = 3,答案是5 (序列000,001,010,100,101是可以接受的,而011,110,111不是)。输入第一行包含场景的数量。对于每个场景,在一行中,您将得到一个小于45的正整数。每个场景的输出从包含“Scenario #i:”的一行开始,其中i是从1开始的场景的数量。然后打印一行包含没有相邻1的n位序列的序列。用空行终止该场景的输出。

也就是说,给出一个数n,那么n位二进制数有2的n次方种不同的取值,我们要找出1不相邻的种数。当n=1时可取(0,1),f[1]=1,g[1]=1,fib[1]= f[1]+ g[1]=2,当n=2时可取(00,01,10),可见是在n=1的基础上在以0结尾的取值后面加0或1,在以1结尾的取值后面加0,f[2]=f[1]+g[1]=2,g[2]=f[1]=1,fib[2]=3

算法思想:递归算法,这里我们使用一次性计算的迭代法,改进算法的效率。设f[i]表示n=i时以0结尾的取值数,g[i]表示n=i时以1结尾的取值数,fib[i]表示n=i时的取值数。以0结尾可以在后面加0或1,以1结尾可以在后面加0,可以得到递归方程:

1)      f[i]=g[i-1]+f[i-1];  i>1

2)      g[i]=f[i-1];  i>1

3)      fib[i]=f[i]+g[i]; i>0

4)      f[1]=1;  i=1

5)      g[1]=1;  i=1

观察递归方程可以发现,这是一个斐波那契数列,(2,3,5,8,13…)

 #include <iostream>
using namespace std;
int main()
{
int fib[];// 没有相邻的1的n位序列的序列数
int f[],g[];
f[]=;
g[]=;
fib[]=f[]+g[];
for(int i=;i<=;i++)
{
f[i]=f[i-]+g[i-];
g[i]=f[i-];
fib[i]=f[i]+g[i];
}
cin>>fib[];//案例数
for(int i=;i<=fib[];i++)
{
int temp;
cin>>temp;
cout<<"Scenario #"<<i<<":\n"<<fib[temp]<<endl<<endl;
}
return ;
}

poj1953 World Cup Noise的更多相关文章

  1. POJ-1953 World Cup Noise(线性动规)

    World Cup Noise Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 16374 Accepted: 8097 Desc ...

  2. Poj 1953 World Cup Noise之解题报告

    World Cup Noise Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16369   Accepted: 8095 ...

  3. POJ 1953 World Cup Noise

    World Cup Noise Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 14397   Accepted: 7129 ...

  4. poj 1953 World Cup Noise (dp)

    World Cup Noise Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 16774   Accepted: 8243 ...

  5. POJ 1953 World Cup Noise(递推)

    https://vjudge.net/problem/POJ-1953 题意:输入一个n,这n位数只由0和1组成,并且不能两个1相邻.计算共有多少种排列方法. 思路:递推题. 首先a[1]=2,a[2 ...

  6. UVa 10450 - World Cup Noise

    题目:构造一个01串,使得当中的1不相邻,问长度为n的串有多少中. 分析:数学,递推数列. 设长度为n的串有n个.则有递推关系:f(n)= f(n-1)+ f(n-2): 长度为n的结束可能是0或者1 ...

  7. poj - 1953 - World Cup Noise(dp)

    题意:n位长的01序列(0 < n < 45),但不能出现连续的两个1,问序列有多少种. 题目链接:id=1953" target="_blank">h ...

  8. 别人整理的DP大全(转)

    动态规划 动态规划 容易: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ...

  9. POJ 题目分类(转载)

    Log 2016-3-21 网上找的POJ分类,来源已经不清楚了.百度能百度到一大把.贴一份在博客上,鞭策自己刷题,不能偷懒!! 初期: 一.基本算法: (1)枚举. (poj1753,poj2965 ...

随机推荐

  1. Loadrunner12.5-录制http://www.gw.com.cn/网页时提示“SSL身份验证失败”错误,这是为什么呢?

    问题:LR产品,录制http://www.gw.com.cn/ 网页时提示下图错误,这是为什么呢? 请在如下recording options中选择正确的SSL版本,再进行录制. 注:如何确定那个SS ...

  2. 2018年UI设计趋势概览

    ​互联网产品的用户界面设计趋势是根据用户的不同需求而不断变化的.在仔细分析了过去几年用户界面设计的趋势和创新之后,我们可以发现其背后的一些规律,2018年UI界面设计的趋势如下. 渐变色 在过去的几年 ...

  3. Jmeter将HTTP request报文体中的字符串转换为大写

    <awd><client id='${__javaScript("${IndividualID}".toUpperCase())}'><member ...

  4. 给Array添加去重原型方法

    Array.prototype.unique = function(){ var newArray = []; var oldArray = this; if(oldArray.length<= ...

  5. servlet 中 service ,doGet , doPost 关系

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2 ...

  6. XAMPP Apache + MariaDB + PHP + Perl

    https://www.apachefriends.org/zh_cn/index.html 什么是XAMPP? XAMPP是最流行的PHP开发环境 XAMPP是完全免费且易于安装的Apache发行版 ...

  7. sci-hub 下载地址更新

    #  2017-12-14 可用 http://www.sci-hub.tw/ 文献共享平台

  8. Jigloo 下载 安装 GUI

    这个需要授权,一直不能解决!! 网上找了很多,都觉不能访问,这个可以用Eclipse直接更新的 http://www.cloudgardensoftware.com/jigloo/update-sit ...

  9. 2018.09.27 codeforces1045D. Interstellar battle(期望dp)

    传送门 一道有意思的期望dp. 题意是给出一棵树,每个点最开始都有一个gg的概率,有m次修改,每次修改会把某个点gg的概率更换掉,让你求出每次修改之后整个树被分成的连通块的数量的期望(gg掉的点不算) ...

  10. 在centos7.1上安装systemd

    1.检查本地systemd的版本 [admin@localhost ~]$ systemctl --version          systemd 208   +PAM +LIBWRAP +AUDI ...