hdu1712 ACboy needs your help
Posted yxysuanfa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hdu1712 ACboy needs your help相关的知识,希望对你有一定的参考价值。
Next follow a matrix A[i][j], (1<=i<=N<=100,1<=j<=M<=100).A[i][j] indicates if ACboy spend j days on ith course he will get profit of value A[i][j].
N = 0 and M = 0 ends the input.
2 2 1 2 1 3 2 2 2 1 2 1 2 3 3 2 1 3 2 1 0 0
3 4 6
这题是分组背包,对于每一门课,有m种天数的选择。并且选一天和选两天是相互排斥的。就是说要么不选,要么选k天,所以就在01背包基础上多加一个循环,注意次序,m循环要在k之前,这样才不会发生一门科目反复选多天的情况。
#include<stdio.h> #include<string.h> int max(int a,int b){ return a>b?a:b; } int v[106][106],dp[106]; int main() { int n,m,i,j,k; while(scanf("%d%d",&n,&m)!=EOF) { if(n==m && n==0)break; for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ scanf("%d",&v[i][j]); } } memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++){ for(j=m;j>=1;j--){ for(k=1;k<=m;k++){ if(j>=k && dp[j]<dp[j-k]+v[i][k]){ dp[j]=dp[j-k]+v[i][k]; } } } } printf("%d\n",dp[m]); } return 0; }
以上是关于hdu1712 ACboy needs your help的主要内容,如果未能解决你的问题,请参考以下文章
ACboy needs your help HDU - 1712
ACboy needs your help HDU - 1712
hdu 1712 ACboy needs your help
hdu 1712 ACboy needs your help