timleee

导航

0-1背包问题python解决

def f(i,j):
while i>=0:
if i==0 and j>=l[i][0]:
return l[i][1]
elif i==0 and j<l[i][0]:
return 0
else:
return max(f(i-1,j-l[i][0])+l[i][1],f(i-1,j))
i = int(input()) # 编号
j = int(input()) # 总承重
l = []
for item in range(i):
str_in = input("please input your list:")
num = [int(n) for n in str_in.split()] # 第一个数字是重量;第二个是价值
l.append(num)
a=f(i,j)
print(a)
运行不了;

posted on 2016-11-21 19:58  timleee  阅读(233)  评论(0编辑  收藏  举报