P2392 python 01背包 全RE
查看原帖
P2392 python 01背包 全RE
1296088
Capito楼主2024/3/7 22:33
a = list(map(int, input().split()))
total = 0

for m in range(1, 5):
    tmp = []
    while len(tmp) != a[m-1]:
        tmp.extend(list(map(int, input().split())))
    dp = [[0 for i in range(30)] for i in range(1500)]
    sum_time = sum(tmp)
    for i in range(1, len(tmp)+1):
        for j in range(1, sum_time//2+1):
            if tmp[i-1] <= j:
                dp[i][j] = max(dp[i-1][j],dp[i][j-tmp[i-1]] + tmp[i-1])
            else:
                dp[i][j] = dp[i-1][j]
    print(tmp)
    total += (sum_time - dp[len(tmp)][sum_time//2])
    
print(total)
2024/3/7 22:33
加载中...