hdu 1176 免费馅饼
2013-05-10 15:07
218 查看
这个题目第一眼看了真没思路,也没想到跟动态规划有关系,最后还是看了Tanky Woo的文章才明白
![](http://images.cnitblog.com/blog/371834/201305/10150325-e800791e417f4869a1c5fe481dd2db9b.jpg)
![](http://images.cnitblog.com/blog/371834/201305/10150308-77c0fe128b1c4b848cb6342474e97f2b.jpg)
看图片对比一下,数轴以5为塔顶,左右两边依次往下落,就形成数塔
题目传送门
参考:http://www.wutianqi.com/?p=2457
![](http://images.cnitblog.com/blog/371834/201305/10150325-e800791e417f4869a1c5fe481dd2db9b.jpg)
![](http://images.cnitblog.com/blog/371834/201305/10150308-77c0fe128b1c4b848cb6342474e97f2b.jpg)
看图片对比一下,数轴以5为塔顶,左右两边依次往下落,就形成数塔
题目传送门
#include<stdio.h> #include<string.h> int dp[11][100001]; int max(int a, int b) { return a>b?a:b; } int main() { int n,x,t,maxtime; int i,j; while(scanf("%d",&n),n) { memset(dp,0,sizeof(dp)); maxtime = 0; for(i=0;i<n;i++) { scanf("%d%d",&x,&t); ++dp[x][t]; maxtime = t>maxtime?t:maxtime; } for(j=maxtime-1;j>=0;j--) { dp[0][j] += max(dp[0][j+1], dp[1][j+1]); dp[10][j] += max(dp[10][j+1], dp[9][j+1]); for(i=1;i<10;i++) dp[i][j] += max(max(dp[i][j+1], dp[i+1][j+1]),dp[i-1][j+1]); } printf("%d\n",dp[5][0]); } return 0; }
参考:http://www.wutianqi.com/?p=2457
相关文章推荐
- HDU-1176-免费馅饼
- hdu1176 免费馅饼
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼(数塔变形)
- HDU 1176 免费馅饼
- hdu 1176 免费馅饼 (数塔dp)
- hdu - 1176 - 免费馅饼
- HDU 1176 免费馅饼 (DP)
- HDU1176 免费馅饼
- 【HDU 1176】免费馅饼(dp)
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼(普通dp
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼 动态规划
- hdu 1176 免费馅饼
- HDU 1176 DP 免费馅饼
- hdu 1176 免费馅饼(类似于hdu 2084 数塔那道题目 )
- HDU 1176 免费馅饼
- hdu 1176 免费馅饼 二维dp