设为首页 加入收藏

TOP

poj - 1953 - World Cup Noise(dp)
2015-07-20 17:33:41 来源: 作者: 【 】 浏览:3
Tags:poj 1953 World Cup Noise

题意:n位长的01序列(0 < n < 45),但不能出现连续的两个1,问序列有多少种。

?

——>>设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 
  
   
#include 
   
     const int MAXN = 45 + 1; int n; int dp[MAXN][2]; void Init() { memset(dp, -1, sizeof(dp)); } void Dp(int i) { if (i == 1) { dp[i][0] = dp[i][1] = 1; return; } if (dp[i][0] != -1) { return; } Dp(i - 1); dp[i][0] = dp[i - 1][0] + dp[i - 1][1]; dp[i][1] = dp[i - 1][0]; } int main() { int T, nCase = 0; scanf(%d, &T); while (T--) { scanf(%d, &n); Init(); Dp(n); printf(Scenario #%d: , ++nCase); printf(%d , dp[n][0] + dp[n][1]); } return 0; } 
   
  


?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Appium根据xpath获取控件实例随笔 下一篇Leetcode:reverse_integer

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)
·每日一道面试题-多线 (2025-12-26 06:20:17)
·java项目中哪些地方 (2025-12-26 06:20:14)