//分组背包中,每组都能连上的背包,每组取的方式都一样,可以随意取。
#include<iostream>
#include<cstdio>
#include<cstring>
#define maxn 105
using namespace std;
int n,m;
int v[maxn][maxn],f[maxn];
int max(int x,int y)
{
return x>y?x:y;
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
if(n==0&&m==0) break;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
scanf("%d",&v[i][j]);
memset(f,0,sizeof(f));
for(int i=1;i<=n;i++)
{
for(int j=m;j>=1;j--)//天数限制
{
for(int k=1;k<=j;k++)//种类
{
f[j]=max(f[j],f[j-k]+v[i][k]);
}
}
}
printf("%d\n",f[m]);
}
return 0;
}
hdu1712分组背包
最新推荐文章于 2024-07-15 22:15:47 发布