【算法复习二】0-1背包问题总结
摘要:
一 ,问题描述: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使价值总和最大。所谓01背包,表示每一个物品只有一个,要么装入,要么不装入。二,解决方案: 考虑使用dp问题 求解,定义一个递归式 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-05-03 23:40 小田的专栏 阅读(491) 评论(0) 推荐(0) 编辑