01背包问题优化
2013-10-12 23:26
330 查看
01背包问题一维数组优化的关键在于在优化中保证状态转移方程成立,即每次计算时要保证能获取到需要的前一状态。这也是逆序的原因
#!/usr/bin/python m = int(raw_input("get m as the max bag size:")) n = int(raw_input("get n as the goods tots:")) print("bag max store: %d, goods tots: %d" % (m, n)) table = [0]*(m+1) p = [0] w = [0] for i in range(1, n+1): weigth = int(raw_input("get weigth:")) value = int(raw_input("get val:")) w.append(weigth) p.append(value) print p print w #print table for row in range(1, n+1): for col in range(m, 0, -1): if(w[row] <= col and table[col - w[row]] + p[row] > table[col]): table[col] = table[col - w[row]] + p[row] print "max value can store:" + str(table[m])
相关文章推荐
- 01背包问题的分析与优化
- 01背包问题及空间优化
- 01背包问题 总结关于为什么01背包优化成1维数组后,内层循环是逆序的?
- 动态规划7:砝码和种类优化成01背包问题
- 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)
- dp 背包问题01的优化
- 01背包问题——经典DP问题,优化与未优化
- 01背包问题的优化解法
- UVA 562 Dividing coins(01 背包问题)
- hdu2546 饭卡 01-背包问题
- hdu 1059二进制优化背包问题
- UVA562(01背包均分问题)
- 背包问题模板(01背包,完全背包,多重背包)
- 01背包问题回溯法和动态规划
- 01 背包问题 --- 待续 - -
- 01背包、完全背包、多重背包、混合三种背包问题
- 01背包问题中用二维数组的思考
- 01背包问题实现探究
- 01背包问题
- 先序遍历用于优化树形分组背包问题