HDU 5366 dp 递推
2016-05-12 20:07
204 查看
The mook jong
Accepts: 506Submissions: 1281
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
问题描述
ZJiaQ为了强身健体,决定通过木人桩练习武术。ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里。由于ZJiaQ是个强迫症,所以他要把一个木人桩正好摆 在一个地砖上,由于木人桩手比较长,所以两个木人桩之间地砖必须大于等于两个,现在ZJiaQ想知道在至少摆放一个木人桩的情况下,有多少种摆法。
输入描述
输入有多组数据,每组数据第一行为一个整数n(1 < = n < = 60)
输出描述
对于每组数据输出一行表示摆放方案数
输入样例
1 2 3 4 5 6
输出样例
1 2 3 5 8 12 题意:中文题面; 题解:递推处理 考虑当前位置pos能做出的最大贡献(前pos块砖按要求摆放木人桩 有dp[pos]种情况在pos位置摆放一个);
#include<iostream> #include<cstdio> #include<cstring> using namespace std; long long dp[100]; int n; int main(){ while(scanf("%d",&n)!=EOF){ long long sum=0; for(int i=1;i<=n;i++) dp[i]=1; for(int i=3;i<=n;i++) for(int j=i-3;j>=1;j--) dp[i]+=dp[j]; for(int i=1;i<=n;i++) sum+=dp[i]; printf("%lld\n",sum); } }
相关文章推荐
- 使用AES加密用户密码
- convert: not found
- hive入门
- 多线程之:模拟实现线程池的工作原理
- LintCode:重哈希
- cordova+ios插件
- 运算符重载(摘抄)
- cordova+ios插件
- poj 1151 Atlantis(线段树+离散化+扫描线)
- 【大数据-第二期】java基础第六天作业
- 关于Android事件派发流程的理解
- 解决Android软键盘和表情面板切换界面闪动问题
- 一个让我很无语的bug
- 显示gcc内置宏
- PAT 1022
- Eviews 9.0新功能——估计方法(ARDL、面板自回归、门限回归)
- 第七周项目3——用多文件组织多个类的程序
- Calendar和Date的用法
- C++中的类与对象
- Android开发常用的adb命令整理