hdu1712分组背包

来源:互联网 发布:董小飒淘宝电脑 编辑:程序博客网 时间:2024/06/18 10:48
//分组背包中,每组都能连上的背包,每组取的方式都一样,可以随意取。#include<iostream>#include<cstdio>#include<cstring>#define maxn 105using 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;}

原创粉丝点击