之前一直不理解,为什么多重背包与01背包是类似的
用朴素法解决多重背包时,操作的集合分为不取i物品,取一个i物品,取两个i物品……取s个物品
所以解题的思路就是在01背包的基础上再加一重循环,将以上集合的全部列举出来,选择其中的价值最大值
代码如下
#include<stdio.h>
int v[1005],w[1005],s[1005],dp[1005];
int main()
{
int n,m,i,j,k;
scanf("%d%d",&n,&m);
for(i = 1;i <= n;i++)
scanf("%d%d%d",&v[i],&w[i],&s[<