完全背包问题细节

目录

 

 之前学过一遍,但是12月2日再练忘光光了: 

忘记点1 —— 为什么每个物品要遍历k件:

忘记点2 —— 数学优化:


 

 之前学过一遍,但是12月2日再练忘光光了: 

完全背包问题细节_第1张图片

【模板】完全背包_牛客题霸_牛客网 (nowcoder.com)

完全背包问题细节_第2张图片

3. 完全背包问题 - AcWing题库

忘记点1 —— 为什么每个物品要遍历k件:

(这个属于逻辑没想清楚了,动态规划的“延伸遍历”逻辑)

        买k件和买3件4件会对应之前不同的体积那就会对应不同的价格,所以遍历件数比大小是有必要的

完全背包问题细节_第3张图片

完全背包问题细节_第4张图片

但还是超时了,所以得优化

忘记点2 —— 数学优化:

完全背包问题细节_第5张图片

下面这个细一点

完全背包问题细节_第6张图片

dp[i][j] 和 dp[i][ j-v[i] ] 最后一项都是体积无限逼近于0的

下面划线部分都加个w[i]就等价于上面那部分,所以计算上面那部分的时候没必要再遍历一遍了(这个就类似于“记忆化”,也正是优化了)

 

有了式子应该就会了吧

(注意滚动数组的话,它看的是j-v[i],所以要从前往后)

 

你可能感兴趣的:(算法,算法,动态规划)