摘要: 01背包 有N件物品,容量为V的背包。第 i 件物品的费用是c[i] ,价值是w[i] 。求能放入背包的物品的最大价值。 每件物品可以选择放或不放,定义f[i][v]表示前 i 件物品恰放入一个容量为 v 的背包可以获得的最大价值。 f[ i ][ v ] = max{f[ i-1 ][ v ] , f[ i-1 ][ v-c[i] ]+w[i]} 时间和空间复杂度都是 O(VN)。 优化空间复杂度 肯定有一个主循环 i=1...N,每次算出来二维数组f[i][0...V]的所有值。 令f[v] = f[i][v] f[i][v] 是由 f[i-1][v] 和f[i-1][... 阅读全文
posted @ 2013-10-09 20:23 yongren1zu 阅读(150) 评论(0) 推荐(0) 编辑