摘要: 0/1背包 问题描述有N件物品和一个容量为V的背包,第i件物品的体积为c[i],价值为w[i]。求将哪些物品放进背包可以使物品价值总和最大(有两种情况:不要求填满背包和填满背包)。每件商品只有一件,且只能选择放或者不放入背包。 解决方案使用动态规划求解,定义一个递归式opt[i][v]表示前i个物品,在背包容量大小为v的情况下,最大的价值。opt[i][v] = max(opt[i-1][v], opt[i-1][v-c[i]] + w[i])其中opt[i-1][v]表示第i件物品不装入背包中的总价值,而opt[i-1][v-c[i]]+w[i]表示第i件物品装入背包中的总价值。通过初始.. 阅读全文
posted @ 2012-11-28 20:28 Geek_Ma 阅读(1830) 评论(1) 推荐(1) 编辑