多重背包

Posted sxy2004

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多重背包相关的知识,希望对你有一定的参考价值。

#include<iostream>
#include<algorithm>
using namespace std;
int v[6002],w[6002],s[6002],f[6002],n,m;
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        cin>>v[i]>>w[i]>>s[i];
    for(int i=1;i<=n;i++)
        for(int j=m;j>=0;j--)
            for(int k=0;k<=s[i];k++){
                if(j-k*v[i]<0) break;
                f[j]=max(f[j],f[j-k*v[i]]+k*w[i]);
            }
    cout<<f[m];
    return 0;
} 

其实和完全背包有点相似,

只是多了一个数量的限制,

ps:我太蒻了qwq

以上是关于多重背包的主要内容,如果未能解决你的问题,请参考以下文章

动态规划问题3--多重背包

蒟蒻吃药计划-治疗系列 #round4 多重背包+混合背包代码存放

解题报告:hdu2191汶川地震 - 多重背包模板

POJ 3260 多重背包+完全背包

01背包模板全然背包 and 多重背包(模板)

01背包+完全背包+多重背包+单调队列