题解 | #【模板】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模式练习#
全部评论

相关推荐

03-11 16:05
运城学院 Java
程序员小白条:简历内容太多了,而且一段实习都没的情况下,写这么多,没啥说服力,反而让人觉得假
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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