这么些二进制优化正确吗?Python代码
查看原帖
这么些二进制优化正确吗?Python代码
1077867
SwordRain楼主2024/3/15 15:28

对的话就不是算法问题,是Python问题了

import sys
input = lambda: sys.stdin.readline().strip()
def main():
    n, W = map(int, input().split())
    item = []
    for _ in range(n):
        v, w, m = map(int, input().split())
        number = 1
        while m > 0:
            if number <= m:
                item.append((v * number, w * number))
                m -= number
                number *= 2
            else:
                item.append((v * m, w * m))
                break
    dp = [0] * (W + 1)
    for value, weight in item:
        for j in range(W, weight - 1, -1):
            dp[j] = max(dp[j], dp[j - weight] + value)
    print(dp[W])
main()
2024/3/15 15:28
加载中...