01串 动态规划初级
来源:互联网 发布:ubuntu 杀死僵尸进程 编辑:程序博客网 时间:2024/06/06 04:08
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
分析:
长度为n的不含‘11’的‘01’子串的由来:
由长度为n-1的01子串加上0或者1组成长度为n的01子串
1.
加上0的情况: n-1位是什么都不会出现11子串 , 即dp[n-1]
2.
加上1的情况: n-1位不能是1,只能是0,所以,所有的情况由长度为n-2的情况决定
即dp[n-2]
综合上面两种情况,dp[n] = dp[n-1]+dp[n-2]
#include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <vector> #include <set> #include <map> #include <stack> #include <string> using namespace std; int main() { int n; cin >> n; int a[41]; a[1] = 2; a[2] = 3; for(int i = 3;i <= 40;i++) a[i] = a[i-1]+a[i-2]; while(n--) { int m; cin >> m; cout << a[m] << endl; } return 0; }
阅读全文
0 0
- 01串 动态规划初级
- 动态规划初级题解
- 动态规划初级
- 最少硬币(动态规划法,初级)
- 上台阶,来自赛码网,初级动态规划算法
- NYOJ 01串(动态规划)
- poj 3267 The Cow Lexicon 初级-》动态规划
- 【动态规划】Move ahead, 初级, LIS 程序完成
- 【华为OJ】由寻找等差数列(初级)到动态规划
- cogs1398 最长上升子序列 动态规划初级
- 01串——动态规划
- 南阳 oj 动态规划 01串
- NYOJ - 252 - 01串(动态规划)
- nyoj252 01串(动态规划)
- 01串 【nyoj-252】【动态规划】
- 回文串-动态规划
- 动态规划01
- 动态规划 01背包
- spring boot @Value注解读取配置
- 转载!!!数据挖掘中的经典问题。
- js全局函数
- JDBC例子之Oracle篇
- python+selenium自动化软件测试(第8章) :多线程
- 01串 动态规划初级
- 注册 测试用例编写
- JQuery EasyUI 隐藏datagrid表头的复选框
- 博弈——Bomb Game
- jsp,Servlet常见题目
- Spring源码分析(一)
- JSP的内置对象二
- HDU 1829 A Bug's Life
- 除法取模与逆元/费马小定理