hdu 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活(多重背包)

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



#include<stdio.h>

#include<iostream>

#include<string.h>

using namespace std;

const int N=1000;

int w[N],val[N],dp[N],num[N];

int main()

{

    int c,n,m,i,j,k;

    scanf("%d",&c);

    while(c--)

    {

        scanf("%d%d",&n,&m);

        for(i=1;i<=m;i++)

        {

            scanf("%d%d%d",&w[i],&val[i],&num[i]);

        }

        memset(dp,0,sizeof(dp));

        for(i=1;i<=m;i++)

        {

            for(j=1;j<=num[i];j++)

            {

                for(k=n;k>=w[i];k--)

                dp[k]=max(dp[k],dp[k-w[i]]+val[i]);

            }

        }

        printf("%d\n",dp[n]);

    }

}

  

你可能感兴趣的:(HDU)