题解 | 魔导模块的效能迭代

魔导模块的效能迭代

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

import sys
import math
from collections import defaultdict, Counter, deque
import heapq

# 总和最小
n, m = list(map(int, input().split()))
a = list(map(int, input().split()))
b = list(map(int, input().split()))

# 优化差值最大的
# 堆吗?
sub = []
for i in range(n):
    mn = min(a[i] -  math.ceil(a[i] / 2), a[i] - b[i])
    heapq.heappush(sub, (-mn, i))

sm = sum(a)

while m > 0:
    # print(sub)
    sb, i = heapq.heappop(sub)

    sb = -sb

    sm -= sb
    a[i] = b[i] if sb == a[i] - b[i] else math.ceil(a[i] / 2)
    mn = min(a[i] - math.ceil(a[i] / 2), a[i] - b[i])
    heapq.heappush(sub, (-mn, i))

    m -= 1

print(sm)




全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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