0-1背包问题模板代码(python)
本模板基于AcWing题库中的第二题,传送门
直接附上代码,如果对0-1背包问题有疑惑,请见我上一篇文章。
count,v = map(int,input().split( ))
value_ = []
weight_ = []
for i in range(count):
vi,wi = map(int,input().split( ))
value_.append(wi)
weight_.append(vi)
dp = [[0 for i in range(v+1)] for j in range(count)]
#### 初始化dp数组
for i in range(1):
for j in range(v+1):
if j >= weight_[0]:
dp[i][j] = value_[i]
####
for i in range(1,count):
for j in range(1,v+1):
if j >= weight_[i] :
dp[i][j] = max(dp[i-1][j],dp[i-1][j-weight_[i]]+value_[i])
else:
dp[i][j] = dp[i-1][j]
print(max(max(dp)))