group backpack

topic → luogu1757

Code:

#include<iostream>
#include<cstdio>
using namespace std;
int w[1007],v[1007],f[1007],zs[1007][1007],js;
int n,m;
int main()
{
    int n,m;
    scanf("%d%d",&m,&n);
    for(int i=1,zb;i<=n;++i)
    {
        scanf("%d%d%d",v+i,w+i,&zb);
        zs[eg][ 0 ]++ ;
        zs [zb] [zs [zb] [ 0 ]] = i;
        js=max(js,zb);
    }
    for(int i=1;i<=js;++i)
    {
        for(int j=m;j>=0;--j)
        {
            for(int k=1;k<=zs[i][0];++k)
            {
                if(v[zs[i][k]]<=j)
                f[j]=max(f[j],f[j-v[zs[i][k]]]+w[zs[i][k]]);    
            }
        }
    }
    cout<<f[m];
    return 0;
}

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324848579&siteId=291194637