动态规划练习
2016-10-26 18:53
239 查看
hdu 1176题目链接 类似求解背包问题的过程,滚动一遍就ok,或者记忆化搜索也可以
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; const int maxTime = 100005; int num[maxTime][11],dp[maxTime][11]; int main() { int n; while(scanf("%d" ,&n) && n) { memset(num,0,sizeof(num)); memset(dp,-1,sizeof(dp)); int fina = -1; for(int k = 1; k <= n; k++) { int x,t; scanf("%d%d" ,&x,&t); num[t][x]++; fina = std::max(fina,t); } dp[1][4] = num[1][4]; dp[1][5] = num[1][5]; dp[1][6] = num[1][6]; for(int time = 2; time <= fina; time++) { for(int pos = 0; pos <= 10; pos++) { int maxt = -1; for(int k = -1; k <= 1; k++) { int p = pos + k; if(p < 0 || p > 10) continue; if(dp[time-1][p] < 0) continue; maxt = max(maxt,dp[time-1][p]); } if(maxt >= 0) { dp[time][pos] = maxt + num[time][pos]; } } } int ans = 0; for(int pos = 0; pos <= 10; pos++) ans = max(ans,dp[fina][pos]); printf("%d\n",ans); } return 0; }
相关文章推荐
- 动态规划练习一 16:踩方格
- 动态规划练习一 03:采药
- 动态规划练习一—9移动路线
- 动态规划(3):熟练度练习(POJ 1458、最佳加法表达式、bailian2755、POJ3624、bailian1088)
- 2016. 4.10 NOI codevs 动态规划练习
- 动态规划练习之钢条切割
- 动态规划练习二:HDU ACM 1159 Common Subsequence
- 动态规划练习一 05:吃糖果
- 动态规划练习一 23:大盗阿福
- 动态规划练习一—13最大上升子序列
- Python练习(1):递归和动态规划的简单应用
- 动态规划练习--21(三角形最佳路径问题)
- 动态规划练习——最大子矩阵
- 动态规划练习 2
- 动态规划练习 13
- 动态规划练习一—14怪盗基德的滑翔翼
- 动态规划练习03:采药
- 最长递增、递减子序列(导弹拦截问题)动态规划练习
- 背包型动态规划练习-codevs-1014装箱问题
- 动态规划练习一 13:最大上升子序列和