0小明的背包1 - 蓝桥云课 (lanqiao.cn)https://www.lanqiao.cn/problems/1174/learning/
#小明的背包系列(1~6),这是1,嘻嘻。
N, V = map(int, input().split())
items = []
for _ in range(N):
w, v = map(int, input().split())
items.append((w, v))
# 初始化dp数组,dp[i][j]表示前i件物品放入容量为j的背包中所能获得的最大价值
dp = [[0] * (V+1) for _ in range(N+1)]
# 动态规划求解
for i in range(1, N+1):
for j in range(1, V+1):
if items[i-1][0] > j:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i-1][j-items[i-1][0]] + items[i-1][1])
print(dp[N][V])
'''
读取输入的商场物品数量N和小明的背包容量V,以及每件物品的体积和价值。
初始化一个二维数组dp,dp[i][j]表示前i件物品放入容量为j的背包中所能获得的最大价值。
使用动态规划求解,遍历每件物品和背包容量,根据当前物品是否放入背包来更新dp数组。
最终输出dp[N][V]即为小明所能获得的最大价值。
'''