01背包问题优化

来源:互联网 发布:js获取边框宽度 编辑:程序博客网 时间:2024/05/20 16:11

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])  


原创粉丝点击