题目描述
这是道多重背包模板题
C++ 代码
#include <bits/stdc++.h>
using namespace std;
const int N=105;
int n,m;
int cost[N],val[N],cnt[N],f[N];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>cost[i]>>val[i]>>cnt[i];
for(int i=1;i<=n;i++)
for (int j=m;j>=0;--j)
for(int k=0;k*cost[i]<=j&&k<=cnt[i];++k)
f[j]=max(f[j-k*cost[i]]+k*val[i],f[j]);
cout<<f[m]<<endl;
return 0;
}