有许多种物品,每种物品有无数个,求最大价值
luogu P1616 疯狂的采药
01 背包的滚动数组。我们要求倒序遍历,才能保证了每件物品只选用一次
将01背包的第二层循环反过来即为完全背包
此时无法保证每个物品只被选取了一次,相当于物品有无数个
for(int i=1;i<=m;i++) { for(int j=shi[i];j<=t;j++) { if(ans[j]<=ans[j-shi[i]]+v[i]) ans[j]=ans[j-shi[i]]+v[i]; } }