defbag_weight_problem(n,space,weight,value):dp =[[0for i inrange(space+1)]for j inrange(n)]for i inrange(weight[0], space+1):dp[0][i]=value[0]for j inrange(1, n):for k inrange(space+1):if weight[j]>k:dp[j][k]=dp[j-1][k]else:dp[j][k]=max(dp[j-1][k], dp[j-1][k-weight[j]]+value[j])return dp[n-1][space]if __name__ =='__main__':n, space =[int(x)for x ininput().split()]weight =[int(x)for x ininput().split()]value =[int(x)for x ininput().split()]result = bag_weight_problem(n,space,weight,value)print(result)
背包问题 一维
题目链接:背包问题 一维
defbag_weight_problem(n,space,weight,value):dp =[0for i inrange(space+1)]for j inrange(n):for k inrange(space,weight[j]-1,-1):dp[k]=max(dp[k], dp[k-weight[j]]+value[j])return dp[space]if __name__ =='__main__':n, space =[int(x)for x ininput().split()]weight =[int(x)for x ininput().split()]value =[int(x)for x ininput().split()]result = bag_weight_problem(n,space,weight,value)print(result)