HDU1176(二维动态规划)
来源:互联网 发布:淘宝首页海报是指什么 编辑:程序博客网 时间:2024/06/05 16:11
没考虑到是二维的矩阵DP , 一开始想着按照最长不递减序列做的 , 不出意外的T 了。
需要矩阵优化才可以过。具体方法很简单,就是方向不好找罢了。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <map>#include <stack>#include <queue>#include <list>#include <cmath>using namespace std;#define cir(a,b) memset(a,b,sizeof a)typedef long long LL;const int maxn = 200000+10;const int INF = 1e9+10;int n;struct Bing{ int d,t;} s[maxn];int dp[maxn][15];int d[maxn][15];bool cmp(const Bing& t1,const Bing& t2){ return t1.t < t2.t;}int main(){ while(cin >> n && n) { int Max = 0; cir (d,0); cir (dp,0); for(int i=1; i<=n; i++) { cin >> s[i].d >> s[i].t; s[i].d++; d[s[i].t][s[i].d]++; Max = max (Max , s[i].t); //s[i].d -= 5; } //sort(s+1,s+n+1,cmp); for(int i=1;i<=11;i++) dp[Max][i] = d[Max][i]; int m = 0; for(int i=Max-1;i>=0;i--) { for(int j=1;j<=11;j++) { dp[i][j] = max(max(dp[i+1][j-1],dp[i+1][j+1]),dp[i+1][j]) + d[i][j]; } }// for(int i=1;i<=11;i++)// {// m=max(dp[1][i],m);// } cout << dp[0][6] <<endl; } return 0;}
阅读全文
1 0
- HDU1176(二维动态规划)
- hdu1176 免费馅饼 动态规划 二维数组实现
- hdu1176免费馅饼(动态规划)
- hdu1176 免费馅饼 (动态规划)
- 【HDU1176】免费馅饼(动态规划)
- Hdu1176 - 免费馅饼 - 动态规划
- hdu1176 免费馅饼 动态规划
- 动态规划:HDU1176-免费馅饼
- 【hdu1176】免费馅饼+动态规划
- HDU1176 免费馅饼 -- 动态规划
- hdu1176免费馅饼(数塔问题,动态规划)
- 免费馅饼 hdu1176 动态规划 数塔
- HDU1176 免费馅饼(动态规划DP)
- 动态规划——hdu1176免费馅饼
- hdu1176 免费馅饼 两种动态规划 三段程序(分别为TLE,AC,AC)
- 动态规划-二维背包(1)
- 动态规划-二维背包(2)
- HDU 1176(二维动态规划)
- 详解Java中的XML解析
- Android相机基础介绍
- 面试感悟
- UI自动测试中遇到
- 安卓 身份证键盘 输入限制
- HDU1176(二维动态规划)
- Activity的详解
- java基础--if和switch的区别
- intel joule 500系列开发板学习笔记
- android 打包 eclipse 错误 Export aborted because fatal lint errors were found
- tensorflow实现图像的翻转
- 18121 排排坐看电影
- 『ORACLE』 对永久表空间进行DML操作(11g)
- android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment xxx.fragments