[Blue Bridge Cup] [Dynamic Programming] [Knapsack Problem]

knapsack problem python

def main():
    w = [ 0 , 2 , 3 , 4 , 5 ] #商品的体积2、3、4、5
    v = [ 0 , 3 , 4 , 5 , 6 ] #商品的价值3、4、5、6
    bagV = 8 #背包大小
    dp=[[0 for col in range(bagV+1)] for row in range(len(w))]
    for i in range(1,5):
        for j  in range(1, bagV+1):
            if j < w[i]:
                dp[i][j] = dp[i - 1][j]
            else:
                dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - w[i]] + v[i])
    for i in dp:
        print(i)

main()

Guess you like

Origin blog.csdn.net/qq_41563601/article/details/124036547