- 问题描述
广义背包问题的描述如下:给定载重量为M的背包和n种物品,每种物品有一定的重量和价值,现在需要设计算法,在不超过背包载重量的前提下,巧妙选择物品,使得装入背包的物品的总价值最大化。规则是,每种物品均可装入背包多次或不装入(但不能仅装入物品的一部分)。
- 符号描述
- 递推公式
- 算法实现以及时空复杂度
function GKP(M, m, v) {
var n = m.length
/*
M:背包最大承重量
n:物品种类个数
m:物品质量
*/
var i, j, x;
var dp = new Array(n + 1)
for (i = 0; i <= n; i++) {
dp[i