#背包九讲
文章平均质量分 52
海风许愿
我始终相信,越努力,越幸运
展开
-
2、背包九讲之第二讲(完全背包问题)
同样直接算并不是很好算,那我们开始曲线救国,先从前i-1种类物品里面选择,然后再加上第i种物品的选择情况,即 dp[ i -1,j-k*v[i] ] +k * w[ i ],我们不难发现,其实选0个可以与后面的合并,也就是k==0的情况。与0/1背包问题类似,我们第i个物品可以选0个,那么dp[ i,j] = dp[i-1,j];求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。有 N 种物品和一个容量是 V 的背包,每种物品都有无限件可用。我们也可以选则1个,2个,3个,…原创 2023-11-08 23:46:48 · 46 阅读 · 0 评论 -
1、背包九讲之第一讲(0/1背包问题)
但是为什么 j 改成了倒叙开始遍历呢,是因为在原二维的计算方法中,二维使用的都是i-1层的数据,但是换成一维后,我因为j>j-v[i],所以dp[j-v[i]]已经被赋值过了,即dp[ i , j -v[ i ] ]已经被赋值过了,所以我们现在使用的是i层的dp[ j -v[ i ] ],但是显然这是不合理的,所以我们要倒叙计算,先计算大的,再去计算小的,那么就不存在数据污染这种情况了。接下来有 N行,每行两个整数 vi,wi,用空格隔开,分别表示第 i 件物品的体积和价值。输出一个整数,表示最大价值。原创 2023-11-07 20:22:11 · 53 阅读 · 0 评论