题解 | 【模板】01背包
【模板】01背包
https://www.nowcoder.com/practice/fd55637d3f24484e96dad9e992d3f62e
n,v = map(int,input().split()) vol = [] weight = [] for _ in range(n): vi, wi = map(int, input().split()) vol.append(vi) weight.append(wi) #容量v的最大价值 dp = [-float('inf') for _ in range(v+1)] dp[0] =0 for i in range(n): for j in range(v,vol[i]-1,-1): dp[j] = max(dp[j - vol[i]]+weight[i],dp[j]) print(max(dp)) full = dp[-1]if dp[-1] > 0 else 0 print(full)