HDU 1176

免费馅饼,题目:http://acm.hdu.edu.cn/showproblem.php?pid=1176

其实就是数塔,一开始没注意,从0秒开始做,相当于从数塔的顶端往下走,结果wa到荼蘼,后来从打后ac了

 1 #include<stdio.h>
 2 #include<string.h>
 3 int dp[15][110000];
 4 int max(int x,int y)
 5 {
 6     return x>y?x:y;
 7 }
 8 int main()
 9 {
10     int n;
11     while (scanf("%d",&n),n)
12     {
13         int i,j;
14         memset(dp,0,sizeof(dp));
15         int maxtime=0;
16         for (i=0;i<n;i++)
17         {
18             int t,p;
19             scanf("%d %d",&p,&t);
20             dp[p+1][t]++;
21             maxtime=max(maxtime,t);
22         }
23         for (i=maxtime-1;i>=0;i--)
24         {
25             for (j=1;j<=11;j++)
26             {
27                 dp[j][i]=max(dp[j-1][i+1],max(dp[j][i+1],dp[j+1][i+1]))+dp[j][i];
28             }
29         }
30         printf("%d\n",dp[6][0]);
31     }
32     return 0;
33 }
posted @ 2012-11-15 14:33  zerojetlag  阅读(170)  评论(0编辑  收藏  举报