杭电1712--分组背包。。

来源:互联网 发布:域名的重要性 编辑:程序博客网 时间:2024/06/03 22:51

题意略。思路略;;

具体见背包讲解。。这个还好理解。。。

#include<iostream>#include<cstdio>#include<algorithm >#include<cstring>#include<cmath>using namespace std;const int maxn=105;int dp[maxn];int a[maxn][maxn];int n,m;int main(){    int i,j,k;    while(scanf("%d%d",&n,&m)!=EOF)    {        if(n==0&&m==0)            break;        for(i=1;i<=n;i++)        {            for(j=1;j<=m;j++)            {                scanf("%d",&a[i][j]);            }        }        memset(dp,0,sizeof(dp));        for(i=1;i<=n;i++)        {            for(j=m;j>=1;j--)            {                for(k=1;k<=j;k++)//与其他背包有点区别。。注意,,                {                    dp[j]=max(dp[j],dp[j-k]+a[i][k]);                }            }        }        printf("%d\n",dp[m]);    }    return 0;}


 

原创粉丝点击