1272:【例9.16】分组背包

#include
#include
using namespace std;
int w[1000];
int c[1000];
int a[1000][1000];
int f[1000];
int main()
{
    int m,n,q,p,i,j,k;
    scanf("%d%d%d",&m,&n,&q);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d%d",&w[i],&c[i],&p);
        a[p][0]++;
        a[p][a[p][0]]=i;
    }
    for(i=1;i<=q;i++)
    {
        for(j=m;j>=0;j--)
        {
            for(k=1;k<=a[i][0];k++)
            {
                if(j>=w[a[i][k]])
                {
                    int tem=a[i][k];
                    if(f[j]                         f[j]=f[j-w[tem]]+c[tem];
                }
            }
        }
    }
    cout<     return 0;
}

你可能感兴趣的:(1272:【例9.16】分组背包)