python中的优先队列的写法,记录一下。
n,k=map(int,input().split()) l=list(map(int,input().split())) import heapq heapq.heapify(l) while len(l) > 1 : a=heapq.heappop(l) b=heapq.heappop(l) heapq.heappush(l, a*b+k) print(l[0]%1000000007)
另外读入也可以这样写,学到了
n,k,*l=map(int,open(0).read().split())
上面的代码不到500ms,下面的代码接近1500ms
from queue import PriorityQueue n, k = map(int, input().split()) l = list(map(int, input().split())) q = PriorityQueue() for i in l: q.put(i) for _ in range(n-1): a = q.get() b = q.get() q.put(a*b+k) print(q.get() % 1000000007)