6 条题解

  • 7
    @ 2024-5-31 20:16:11

    介绍一个python的优先队列做法。

    heapq是python自带的优先队列(小根堆),其基础语法是: heapq.heappush(arr, num)

    在arr里放入一个数字num,要求arr是堆。

    heapq.haeppop(arr)

    在arr里弹出头部的数字。

    heapq本身提供的是小根堆,也就是说一个升序的数组。所以我们用其相反数来表示这个数。

    我们每次拿出最湿的衣服烘干,直到最湿的衣服可以被自然风干为止。

    复杂度 O(nlogn)O(nlogn) 可以通过这道题,而且比二分答案更稳更快!

    import heapq
    
    n,a,b=map(int,input().split())
    c=[]
    for _ in range(n):
        x = int(input())
        heapq.heappush(c, -x)
    
    cnt=0
    while c[0]<-a*cnt:
        p=heapq.heappop(c)
        p+=b
        heapq.heappush(c,p)
        cnt += 1
    
    print(cnt)
    
    • @ 2024-6-1 7:39:49

      逆天大顶堆 未曾设想的道路

信息

ID
936
时间
3000ms
内存
256MiB
难度
9
标签
递交数
576
已通过
38
上传者