用户登录
动态规划的思想是自底向上,先求局部最优解然后求全局最优解。
dp[i][j]代表的是当前状态物品的数量以及背包的容量。
N, V = map(int,input().split())
dp = [[0 for _ in range(V+1)] for _ in range(N+1)]
for i in range(1,N+1):
v, w = map(int,input().split())
for j in range(1,V+1):
if j<v:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j],dp[i-1][j-v]+w)
# for elem in dp:
# print(elem)
print(dp[N][V])