目录
之前学过一遍,但是12月2日再练忘光光了:
忘记点1 —— 为什么每个物品要遍历k件:
忘记点2 —— 数学优化:
之前学过一遍,但是12月2日再练忘光光了:
【模板】完全背包_牛客题霸_牛客网 (nowcoder.com)
3. 完全背包问题 - AcWing题库
忘记点1 —— 为什么每个物品要遍历k件:
(这个属于逻辑没想清楚了,动态规划的“延伸遍历”逻辑)
买k件和买3件4件会对应之前不同的体积,那就会对应不同的价格,所以遍历件数比大小是有必要的
但还是超时了😭,所以得优化
忘记点2 —— 数学优化:
下面这个细一点
dp[i][j] 和 dp[i][ j-v[i] ] 最后一项都是体积无限逼近于0的
下面划线部分都加个w[i]就等价于上面那部分,所以计算上面那部分的时候没必要再遍历一遍了(这个就类似于“记忆化”,也正是优化了)
有了式子应该就会了吧😚
(注意滚动数组的话,它看的是j-v[i],所以要从前往后)