代碼是自己寫的 例題沒有 所以輸入格式上會有局限 可自行改動
#0-1背包問題 N,W=map(int,input().strip().split())#石頭個數,背包限重 V=list(map(int,input().split()))#石頭價值 V.insert(0,0) w=list(map(int,input().split()))#石頭價值 w.insert(0,0) #石頭重量 dp=[[0]*(N+1) for _ in range(W+1)]#dp[i][j]代表容量為i時 前j個石頭的最大價值 for j in range(1,N+1): for i in range(0,W+1): if w[j]>i: dp[i][j]=dp[i][j-1] else: dp[i][j]=max(dp[i][j-1],dp[i-w[j]][j-1]+V[j]) print(dp[W][N])分享我學習的程序,看某站上的視頻,模仿他以串列的形式來完整表格,一邊發現規律一邊寫,最后總結,發現總結一致,然后自己根據自己列的表就去寫代碼了
2022一起加油鴨!這點困難難不倒我~
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/402744.html
標籤:python
