您的位置:首页 > 其它

【算法系列学习】[kuangbin带你飞]专题十二 基础DP1 G - 免费馅饼

2017-04-03 21:41 435 查看
https://vjudge.net/contest/68966#problem/G

正解一:

http://www.clanfei.com/2012/04/646.html

1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<string>
5 #include<algorithm>
6 #include<cmath>
7 #define INF 0x3f3f3f3f
8 using namespace std;
9 const int maxn=1e5+5;
10 int a[11][maxn];
11 int main()
12 {
13     int n,x,y;
14     while(scanf("%d",&n)==1&&n)
15     {
16         memset(a,0,sizeof(a));
17         int maxtime=-INF;
18         for(int i=0;i<n;i++)
19         {
20             scanf("%d%d",&x,&y);
21             maxtime=max(maxtime,y);
22             a[x][y]++;
23         }
24         for(int i=maxtime-1;i>=0;i--)
25         {
26             for(int k=0;k<=10;k++)
27             {
28                 if(k==0)
29                 {
30                     a[k][i]+=max(a[k][i+1],a[k+1][i+1]);
31                 }
32                 else
33                 {
34                     a[k][i]+=max(max(a[k][i+1],a[k-1][i+1]),a[k+1][i+1]);
35                 }
36             }
37         }
38         printf("%d\n",a[5][0]);
39     }
40     return 0;
41 }


RE
这份代码是按逆推写的,然而不知道为什么RE,看数组也没越界.....先放在这里.....
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐