HDU-1176 做个骑士,以梦为马
2016-02-27 13:45
337 查看
/**************************************************************************************************************** HDU:1176 类似数塔,递推方向从最后一层 到第一层 f[i][j]:第j秒在i位置获得的最大馅饼数 f[0][j] += max { f[0][j+1] , f[1][j+1] } i=0; f[10][j] += max { f[10][j+1] , f[9][j+1] } i=10 f[i][j] += max { f[i+1][j+1] , f[i-1][j+1] , f[i][j+1] } 0<i<10 *****************************************************************************************************************/ #include <iostream> #include <string.h> #include <algorithm> //max函数用,HDU不支持直接使用 using namespace std; int f[11][100001]; //为什么定义在 main 之前就没有越界 int main() { int n,x,T; while(cin>>n,n!=0) { int maxtime=0; memset(f,0,sizeof(f));//f=0; for(int i=0;i<n;i++) { cin>>x>>T; f[x][T]++; if(T>maxtime) maxtime=T; } //cout<<maxtime<<endl; for(int j=maxtime-1;j>=0;j--) { f[0][j] += max(f[0][j+1],f[1][j+1]); f[10][j] += max(f[10][j+1],f[9][j+1]); for(int i=1;i<10;i++) f[i][j] += max(max(f[i][j+1],f[i+1][j+1]),f[i-1][j+1]); } cout<<f[5][0]<<endl; } return 0; }
相关文章推荐
- C++动态规划之最长公子序列实例
- C++动态规划之背包问题解决方法
- C#使用动态规划解决0-1背包问题实例分析
- 动态规划
- C++ 动态规划
- DP(动态规划) 解游轮费用问题
- 动态规划的用法——01背包问题
- 动态规划的用法——01背包问题
- 《收集苹果》 动态规划入门
- 《DNA比对》蓝桥杯复赛试题
- 《背包问题》 动态规划
- 初学ACM - 半数集(Half Set)问题 NOJ 1010 / FOJ 1207
- 关于爬楼梯的动态规划算法
- 动态规划 --- hdu 1003 **
- DP问题各种模型的状态转移方程
- 0-1背包解题过程
- 背包问题
- USACO 3.2.2:Stringsobits
- 字符串编辑距离
- HDU ACM Step 2.2.2 Joseph(约瑟夫环问题)