hdu 1176 免费馅饼(数塔问题)
2012-06-06 21:51
246 查看
//考察点:dp,简单数塔,从下往上不断dp,最后得到的为最大值 //思路,第0秒 5 //第1秒 4 5 6 //第2秒 3 4 5 6 7 //第3秒 2 3 4 5 6 7 8 //第4秒 1 2 3 4 5 6 7 8 9 //第5秒 0 1 2 3 4 5 6 7 8 9 10 //第6秒 0 1 2 3 4 5 6 7 8 9 10 //提交情况 WA一次,原因:for(j=1;j<=9;j++)中j写成从0开始了,粗心了。 //收获,学到了数塔的知识 //AC code #include<iostream> using namespace std; int dp[100005][12]; int x,T; int max3(int a,int b,int c){ return c>(a>b?a:b)?c:(a>b?a:b); } int main(){ int n; while(scanf("%d",&n)&&n){ memset(dp,0,sizeof(dp)); int i,j,Max=-1; for(i=0;i<n;i++){ scanf("%d%d",&x,&T); if(Max<T) Max=T; dp[T][x]++; } for(i=Max-1;i>=0;i--){ if(i>4){ dp[i][0]+=max(dp[i+1][0],dp[i+1][1]); for(j=1;j<=9;j++){ dp[i][j]+=max3(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1]); } dp[i][10]+=max(dp[i+1][9],dp[i+1][10]); } else{ for(j=5-i;j<=5+i;j++){ dp[i][j]+=max3(dp[i+1][j-1],dp[i+1][j],dp[i+1][j+1]); } } } printf("%d\n",dp[0][5]); } return 0; }
相关文章推荐
- hdu 1176免费馅饼__变形的数塔问题
- HDU——1176 免费馅饼(动态规划 类似数塔问题)
- HDU 1176免费馅饼 DP数塔问题转化
- hdu 1176 免费馅饼(动态规划 数字三角形问题变形)
- [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]
- HDU 1176 免费馅饼(树塔问题的简单变形)
- G - 免费馅饼 HDU - 1176 ——dp-金字塔
- HDU 1176 免费馅饼(DP)
- Hdu 1176 免费馅饼 (DP)
- HDU-OJ 杭电 1176 免费馅饼
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼
- HDU 1176 免费馅饼
- hdu1176——免费馅饼
- hdu 1176 免费馅饼
- 【基础dp】HDU 1176 免费馅饼
- hdu 1176 免费馅饼(动态规划)
- HDU-1176-免费馅饼
- HDU 1176 免费馅饼 动态规划
- HDU 1176 - 免费馅饼