w=[10,4,6,15,20,25]#每个物品的重量
c=[18,15,10,40,50,60]#每个物品的价值
V=40#背包总重量
N=6#物品个数
dp=[[0 for i in range(V+1)] for j in range(N+1)]#N+1行,V+1列
print(dp)
for i in range(1,N+1):
for j in range(1,V+1):
if j>=w[i-1]:#如果当前背包可以放下第i-1物品【注意,i是从1开始的】
dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i-1]]+c[i-1])
else:#放不下当前物品
dp[i][j]=dp[i-1][j]#不拿当前物品
print(dp[N][V])
0/1背包问题---动态规划python
最新推荐文章于 2022-02-09 13:02:43 发布