多重背包模板题:对于这道题直接拆成01背包即可
参考代码
#include<iostream>
using namespace std;
int n,w,f[50005];
int main()
{
cin>>n>>w;
while(n--)
{
int W,P,C;
cin>>W>>P>>C;
for(int i=1;i<=C;i++) //把C件物品分开,一个一个考虑.
for(int j=w;j>=W;j--) // 01背包模板
f[j]=max(f[j],f[j-W]+P);
}
cout<<f[w];
return 0;
}