题解 | 【模板】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)

全部评论

相关推荐

04-17 10:16
门头沟学院 Java
小浪_coder:24届很难找了,马上25的都毕业了还有很多没找到的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务