ACboy needs your help HDU

ACboy needs your help HDU - 1712

ans[i][j]表示前i门课共花j时间最大收益。对于第i门课,可以花k(0<=k<=j)时间,那么之前i-1门课共花j-k时间。

错误记录:

21行一个0写成1

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int a[101][101],ans[101][101];
 6 int n,m,anss;
 7 int main()
 8 {
 9     int i,j,k;
10     scanf("%d%d",&n,&m);
11     while(n!=0&&m!=0)
12     {
13         for(i=1;i<=n;i++)
14             for(j=1;j<=m;j++)
15                 scanf("%d",&a[i][j]);
16         memset(ans,0,sizeof(ans));
17         anss=0;
18         for(i=1;i<=n;i++)
19             for(j=1;j<=m;j++)
20             {
21                 for(k=0;k<=j;k++)
22                     ans[i][j]=max(ans[i][j],ans[i-1][j-k]+a[i][k]);
23                 anss=max(anss,ans[i][j]);
24             }
25         printf("%d
",anss);
26         scanf("%d%d",&n,&m);
27     }
28     return 0;
29 }
原文地址:https://www.cnblogs.com/hehe54321/p/hdu-1712.html