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

全部评论

相关推荐

刘湘_passion:太强了牛肉哥有被激励到
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务