HDU1176-基础dp-免费馅饼
2017-07-23 20:13
363 查看
https://vjudge.net/contest/170788#problem/G
看来我也只会写这种基础的dp了qwq
中文题意。
直接递推。
dp[i][j]为i秒j位置的最优解。
而在i秒j位置总共就这几种来源。。找一个最大的。
注意,开始没有注意起始位置,wa了两发。
看来我也只会写这种基础的dp了qwq
中文题意。
直接递推。
dp[i][j]为i秒j位置的最优解。
而在i秒j位置总共就这几种来源。。找一个最大的。
注意,开始没有注意起始位置,wa了两发。
#include <iostream> #include <cstdio> #include <cstring> using namespace std; const int maxn=1e5+5; int mp[maxn][12]; int dp[maxn][12]; int main() { int t; int a,b; while(~scanf("%d",&t)){ if(!t) break; memset(mp,0,sizeof(mp)); int bb=-1; for(int i=0;i<t;i++){ scanf("%d%d",&a,&b); mp[b][a]+=1; bb=max(b,bb); } memset(dp,0,sizeof(dp)); dp[1][5]=mp[1][5]; dp[1][4]=mp[1][4]; dp[1][6]=mp[1][6]; for(int i=2;i<=bb;i++){ for(int j=0;j<=10;j++){ if(j>0) dp[i][j]=max(dp[i-1][j-1],dp[i][j]); if(j<10) dp[i][j]=max(dp[i-1][j+1],dp[i][j]); dp[i][j]=max(dp[i-1][j],dp[i][j]); dp[i][j]+=mp[i][j]; } } int ans=-1; for(int i=0;i<=10;i++) ans=max(ans,dp[bb][i]); printf("%d\n",ans); } return 0; }
相关文章推荐
- HDU1176:免费馅饼(DP)
- hdu1176 免费馅饼 DP
- HDU1176 免费馅饼(简单dp)
- HDU1176:免费馅饼(DP) (G)
- 【基础dp】HDU 1176 免费馅饼
- HDU1176:免费馅饼(DP)
- HDU 1176 免费馅饼(基础DP)
- HDU1176-免费馅饼(DP)
- HDU1176 免费馅饼 数塔DP
- [kuangbin带你飞]专题十二 基础DP1 G - 免费馅饼
- hdu1176 免费馅饼 ——DP
- HDU1176 免费馅饼(水DP)
- HDU1176:免费馅饼(dp,数字三角形的应用)
- NYOJ 613 免费馅饼(数字三角形)(基础dp)
- 【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 G - 免费馅饼
- HDU1176 免费馅饼 经典DP
- hdu1176 - 免费馅饼 (经典dp)
- G - 免费馅饼 基础DP
- HDOJ 1176 免费馅饼(基础DP方程)
- HDU1176 免费馅饼 树形DP