多重背包标准二维数组做法

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#include
using namespace std;
 
int nCases;
int nValue, nKind;
int value[105], weight[105], bag[105];    //价值,容量,个数
int nMultiplePack[105];        //DP
 
int main()
{
    //freopen("input.txt", "r", stdin);
    scanf("%d", &nCases);
    while(nCases--)
    {
        memset(nMultiplePack, 0, sizeof(nMultiplePack));
        scanf("%d %d", &nValue, &nKind);
        for(int i=0; i             scanf("%d %d %d", &value[i], &weight[i], &bag[i]);
        for(int i=0; i             for(int j=0; j                 for(int k=nValue; k>=value[i]; --k)
                    if(nMultiplePack[k] < nMultiplePack[k-value[i]]+weight[i])
                        nMultiplePack[k] = nMultiplePack[k-value[i]] + weight[i];
        printf("%d\n", nMultiplePack[nValue]);
 
    }
    return 0;
}

转载于:https://my.oschina.net/hlslml77/blog/205846

你可能感兴趣的:(多重背包标准二维数组做法)