hdu1712 分组背包

来源:互联网 发布:股票数据转换 编辑:程序博客网 时间:2024/05/22 09:04

http://acm.hdu.edu.cn/showproblem.php?pid=1712

背包九讲的思路

#include <iostream>#include<cstdio>#include<cstring>using namespace std;int dp[105];struct node{    int w,v;};node g[105][105];int main(){    int n,m;    while(scanf("%d%d",&n,&m))    {        if(n==0&&m==0)            break;        int i,j;        memset(dp,0,sizeof(dp));        memset(g,0,sizeof(g));        for(i=1;i<=n;i++)            for(j=1;j<=m;j++)            {                scanf("%d",&g[i][j].v);                g[i][j].w=j;            }        for(i=1;i<=n;i++)        {            for(j=m;j>=0;j--)            {                int k;                for(k=1;k<=m;k++)                {                    if(j>=g[i][k].w)                        dp[j]=max(dp[j],dp[j-g[i][k].w]+g[i][k].v);                }            }        }        printf("%d\n",dp[m]);    }    return 0;}


原创粉丝点击