zoj1163 (很经典很好的DP)
2016-02-05 23:42
274 查看
啊啊啊啊啊啊短短不到30行代码看死我了,现在也没有完全理解,明天继续学习,DP之路还很长,ACM之路还很长
状态 dp[i][j] 表示有 i 个积木时 最后一列不大于j个积木的总和。
转移方程: dp[i][j]=dp[i-j][j-1]+dp[i][j-1];
以下是代码:
状态 dp[i][j] 表示有 i 个积木时 最后一列不大于j个积木的总和。
转移方程: dp[i][j]=dp[i-j][j-1]+dp[i][j-1];
以下是代码:
#include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; long long dp[1234][1234]; int main() { int n; while(1){ scanf("%d",&n); if(!n)break; memset(dp,0,sizeof(dp)); for(int i=0;i<=n;i++) dp[0][i]=1; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i>=j) dp[i][j]=dp[i-j][j-1]+dp[i][j-1]; else dp[i][j]=dp[i][j-1]; printf("%lld\n",dp -1); } return 0; }
相关文章推荐
- 排序算法
- AA树
- redis设置为系统服务并开机启动(附脚本文件)
- java.lang.NoSuchMethodException: setContentView [int] android ViewUtils
- 如何使用struts2的Interceptor
- python成长之路第一篇(5)文件的基本操作
- java 通过zxing生成二维码
- [Algorithm]Maze Prim算法与A*寻路算法(上)
- LightOJ 1035 - Intelligent Factorial Factorization (求因子)
- 跳跃表实现的原理
- 日元负利率和美元暴跌,是对人民币的夹击
- 8 种常用的 NoSQL 数据库系统对比分析
- Android与PC间进行Socket通信
- Mybatis typeAliases别名
- LeetCode 73. Set Matrix Zeroes
- 利用github搭建个人小站
- php判断ip是否在指定ip区间内
- Linux 文件I/O — 文件描述符详解
- jQuery8(常见方法next.prev等,常见方法练习)
- 做得刚好