NYOJ 题目252 01字串
来源:互联网 发布:明星脸测试软件 编辑:程序博客网 时间:2024/05/17 03:31
描述
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串共有多少个,占一行。
- 样例输入
223
- 样例输出
35
分析:这个题完全可以看做是找规律,完全符合斐波那契数列,这不是巧合 ,下面我来解释一下为什么会这样。
a[2]=3;
00 01 10
从a[2]到a[3]的过程中:
只有00 10(末尾是0)可以分出2个排列(后面跟上0或1)
而 01只能延续为 010 所以a[3]=a[2]+2;
于是a[n]=a[n-1]+a[n-1]个排列中末尾是0的个数
a[n-1]个排列中末尾是0的个数=a[n-2]
所以a[n]=a[n-1]+a[n-2]
AC代码:
#include<stdio.h>#include<math.h>int main(){ int n,i,m; scanf("%d",&n); int a[110]={1, 2}; for(i=2;i<50;i++) a[i]=a[i-1]+a[i-2]; while(n--) { scanf("%d",&m); printf("%d\n",a[m]); } return 0;}
0 0
- NYOJ 题目252 01字串
- NYOJ 题目252 01串
- NYOJ 题目442字串和之差(动态规划)
- NYOJ 44-字串和
- nyoj 44-字串和
- NYOJ 44 字串和
- NYOJ 44 字串和
- nyoj 字串和---44
- nyoj 44 字串和
- NYOJ 题目252 01串(动态规划,递推)
- NYOJ题目252-01串(动态规划)
- NYOJ 44 最大字串合
- NYOJ 题目860 又见01背包
- 01字串
- 01字串
- 01字串
- 01字串
- 01字串
- BZOJ 2815 [ZJOI2012]灾难【灭绝树
- Angularjs的理解和认识
- C++ Primer 学习笔记_38_STL实践与分析(12)--容器的综合应用:文本查询程序
- 动态规划1002
- Android-Activity详解
- NYOJ 题目252 01字串
- 安装数据库找不到数据库引擎启动句柄
- c++ primer 学习笔记(1): 第1-5章
- C++ Primer 学习笔记_39_STL实践与分析(13)--multimap与multiset
- 计算日期c语言(结构体+函数+闰年判断)
- 替换空格
- 理解java数组的内部机制
- 设计模式之:适配器模式
- 单因素下的方差分析