class UF:
def __init__(self, n):
self.count = n
self.parent = [i for i in range(n)]
def find(self, p):
while p != self.parent[p]:
self.parent[p] = self.parent[self.parent[p]]
p = self.parent[p]
return p
def union(self, p, q):
p_root = self.find(p)
q_root = self.find(q)
if p_root == q_root:
return
self.count -= 1
self.parent[q_root] = p_root
def get_count(self):
return self.count
经典算法模板-并查集实现
最新推荐文章于 2024-02-19 21:13:24 发布