本文主要是介绍完全背包问题 非零基础,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
之前学过一遍,但是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],所以要从前往后)
这篇关于完全背包问题 非零基础的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!