有n件物品和容量为m的背包 给出i件物品的重量以及价值 还有数量
求解让装入背包的物品。重量不超过背包容量 且价值最大
特点它与完全背包有类似点 特点是每个物品都有了一定的数量
#include<iostream>
using namespace std;
int w[100],v[100],c[100];
int f[100];
int main()
{
int m,n;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>w[i]>>v[i]>>c[i];
}
for(int i=1;i<=n;i++)
{
for(int j=m;j>=0;j--)
{
for(int k=0;k<=c[i];k++)
{
if(j-k*w[i]<0) //单买买不起k次
{
break;
}
f[j] = max( f[j] , f[j-k*w[i]]+k*v[i] );
}
}
for(int l=1; l<=m; l++)
{
cout << f[l] << " ";
}
cout << endl;
}
cout<<f[m]<<endl;//最优解
}