题解 | #【模板】完全背包#

【模板】完全背包

https://www.nowcoder.com/practice/237ae40ea1e84d8980c1d5666d1c53bc

记录自己用 Python 写的完全背包模板题

from math import inf

while True:
    try:
        n, V = map(int, input().strip().split(sep=" "))
        v = []
        w = []
        for i in range(n):
            data = list(map(int, input().strip().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[i], V + 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模式练习#
全部评论

相关推荐

永不遗忘:才这么点算什么拉黑,我初筛连着挂几十次了,最后还是能进面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务