题目描述:
- 有n个物品,每个物品有两个属性:一个是体积 w i w_i wi,一个是价值 v 1 v_1 v1,可以表示为: { ( w 1 , v 1 ) , ( w 1 , v 1 ) , … , ( w 1 , v n ) } \{(w_1,v_1 ),(w_1,v_1 ),…,(w_1,v_n )\} { (w1,v1),(w1,v1),…,(w1,vn)}。同时我们还有一背包,背包的容量用W表示。现在我们将物品放入背包,放入的物品体积的总和不得超过背包的体积。问这个背包能装下的最大价值。
限制条件:
- 1 ≤ n ≤ 100 1≤n≤100 1≤n≤100
- 1 ≤ W ≤ 1 0 9 1≤W≤10^9 1≤W≤1

这篇博客讨论了01背包问题在面对大背包容量时的解析和优化。通过改变动态规划的数组含义,将时间复杂度从O(nW)降低,转化为dp[i][j]表示从前i个物品中选择价值为j的最小体积。提出了新的初始条件和递推公式,并指出结果为dp数组中第n行小于等于W的最大列号。
最低0.47元/天 解锁文章
1105

被折叠的 条评论
为什么被折叠?



