经典背包问题
T, M = map(int, input().split())
dp = [[0 for i in range(T+1)] for j in range(M+1)]
t = []
v = []
for i in range(0, M):
a, b = map(int, input().split())
t.append(a)
v.append(b)
for i in range(0, M):
for j in range(0, T+1):
if j < t[i]:
dp[i+1][j] = dp[i][j]
else:
dp[i+1][j] = max(dp[i][j], dp[i][j-t[i]]+v[i])
print(dp[M][T])
该博客探讨了如何使用动态规划解决经典的背包问题。通过输入物品的重量和价值,程序计算在给定总重量限制下,能获得的最大价值。算法通过构建二维数组,逐项更新最优解,最终得到解决方案。
2282

被折叠的 条评论
为什么被折叠?



