题解 | #【模板】01背包#

【模板】01背包

https://www.nowcoder.com/practice/fd55637d3f24484e96dad9e992d3f62e

记录自己用 Python 写的 0-1 背包模板题

from math import inf
while True:
    try:
        n, V = map(int, input().split(sep=' '))
        v = []
        w = []
        for i in range(n):
            data = list(map(int, input().split(sep=' ')))
            v.append(data[0])
            w.append(data[1])
        
        dp1 = [0] * (V + 1)
        dp2 = [0] + [-inf] * V
        for i in range(n):
            for c in range(V, v[i] - 1, -1):
                dp1[c] = max(dp1[c], dp1[c - v[i]] + w[i])
                dp2[c] = max(dp2[c], dp2[c - v[i]] + w[i])                

        print(dp1[-1])
        print(dp2[-1] if dp2[-1] != -inf else 0)
    except:
        break

#ACM模式练习#
全部评论

相关推荐

真的是临近过年了
随机昵称很奇怪:不用买鞭炮了
点赞 评论 收藏
分享
2024-12-06 10:46
已编辑
上海大学 C#工程师
LHight:兄弟去偷配方回来
点赞 评论 收藏
分享
Java抽象带篮子:实习经历可以包装下,可以看看我的包装帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务