Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
143819 | jiayou | 最优选课 | C++ | 解答错误 | 0 | 2 MS | 184 KB | 772 | 2024-04-18 19:45:34 |
#include <stdio.h> #include <string.h> #define max(x,y) x>y?x:y int main() { int n,m,i,j,k; int dp[105]; int a[105]; while(scanf("%d%d",&n,&m),n,m) { memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++)//复习天数 { for(j=1;j<=m;j++) { scanf("%d",&a[j]); } memset(dp,0,sizeof(dp)); for(j=m;j>0;j--)//背包容量,即复习总天数 { for(k=j;k>0;k--)//组数,第一组一天第二组两天,第三组三天 { dp[j]=max(dp[j],dp[j-k]+a[k]); } } } printf("%d\n",dp[m]); } return 0; }