kemuniku / cplib

Creative Commons Zero v1.0 Universal
4 stars 0 forks source link

削除可能優先度付きキュー #271

Closed kemuniku closed 3 weeks ago

kemuniku commented 3 months ago

優先度付きキューを2本持って処理

kemuniku commented 1 month ago
import heapq
class Heapq():
    def __init__(self,li = []):
        self.main =li[:]
        heapq.heapify(self.main)
        self.sub = []
    def pop(self):
        while self.sub and self.main[0] == self.sub[0]:
            heapq.heappop(self.main)
            heapq.heappop(self.sub)
        return heapq.heappop(self.main)
    def add(self,x):
        heapq.heappush(self.main,x)
    def discard(self,x):
        heapq.heappush(self.sub,x)
    def f(self):
        while self.sub and self.main[0] == self.sub[0]:
            heapq.heappop(self.main)
            heapq.heappop(self.sub)
        return self.main[0]

python

kemuniku commented 3 weeks ago

やるか~