0小明的背包3 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/1176/learning/
#小明的背包系列3,嘻嘻
N, V = map(int, input().split())
items = []
for _ in range(N):
w, v, s = map(int, input().split())
items.append((w, v, s))
# 初始化dp数组,dp[i][j]表示前i种物品放入容量为j的背包中所能获得的最大价值
dp = [0] * (V+1)
# 动态规划求解
for i in range(N):
w, v, s = items[i]
for j in range(V, w-1, -1):
for k in range(1, min(s, j//w)+1):
dp[j] = max(dp[j], dp[j-k*w] + k*v)
print(dp[V])
'''
读取输入的商场物品数量N和小明的背包容量V,以及每种物品的体积、价值和数量。
初始化一个一维数组dp,dp[j]表示容量为j的背包中所能获得的最大价值。
使用动态规划求解,遍历每种物品,然后使用0-1背包的思想进行动态规划
。 最终输出dp[V]即为小明所能获得的最大价值。
'''