装入书包的商品的最大价值
题目描述
小蓝桌子上摆放着一个容积为 m 的书包及 n 件不同的商品,且每件商品上都标有商品的体积和商品的价值。
小蓝要满足以下要求挑选商品装入书包中,
要求 1:挑选的商品总体积不超过书包的容积;
要求 2:挑选的商品商品总价值最大。
请你帮助小蓝计算出能装入书包的商品的最大价值。
输入描述
第一行输入两个正整数 m 和 n,m 表示书包的容积,n 表示商品的数量。两个正整数之间一个英文逗号隔开
第二行输入 n 个正整数表示商品的体积,正整数之间一个英文逗号隔开
第三行输入 n 个正整数表示商品的价值,正整数之间一个英文逗号隔开(商品价值的输入顺序对应商品体积输入顺序)
输出描述
输出装入书包的商品的最大价值
样例输入
11,3
2,6,4
1,5,2
样例输出
7
代码详解
展开查看
m, n = map(int, input().split(",")) v = [int(i) for i in input().split(",")] w = [int(i) for i in input().split(",")] ls = [[0] * (m + 1) for _ in range(n + 1)] print(ls) for i in range(1, n + 1): for j in range(1, m + 1): if j < v[i-1]: ls[i][j] = ls[i - 1][j] else: ls[i][j] = max(ls[i - 1][j], ls[i - 1][j - v[i - 1]] + w[i-1]) print(ls[n][m])
运行结果
展开查看
16,6 1,2,3,4,5,6 12,3,1,44,2,53 113