Skip to content

Commit 83254c9

Browse files
committed
modified UFT.py
1 parent 0c87bd1 commit 83254c9

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

Tree/UnionFindTree.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
class UnionFind:
2-
def __init__(self, n):
2+
def __init__(self, n: int) -> None:
33
self.n = n
44
self.p = [-1] * n
55

66

7-
def leader(self, a):
7+
def leader(self, a: int) -> int:
88
while self.p[a] >= 0:
99
a = self.p[a]
1010
return a
1111

1212

13-
def merge(self, a, b):
13+
def merge(self, a: int, b: int) -> int:
1414
x = self.leader(a)
1515
y = self.leader(b)
1616

@@ -25,26 +25,34 @@ def merge(self, a, b):
2525

2626
return x
2727

28-
def same(self, a, b):
28+
def same(self, a: int, b: int) -> bool:
2929
return self.leader(a) == self.leader(b)
3030

31-
def size(self, a):
31+
def groups(self) -> list:
32+
member = [[] for _ in range(self.n)]
33+
for i in range(self.n):
34+
member[self.leader(i)].append(i)
35+
return member
36+
37+
def size(self, a: int) -> int:
3238
return -self.p[self.leader(a)]
3339

40+
3441
def main() -> None:
35-
n, m = map(int, input().split())
42+
N, M = map(int, input().split())
3643

37-
uf = UnionFind(n)
44+
UF = UnionFind(N)
3845

3946
for _ in range(m):
40-
a, b = map(int,input().split())
41-
uf.merge(a - 1, b - 1)
47+
A, B = map(lambda x: int(x) - 1,input().split())
48+
UF.merge(A, B)
4249

4350
ans = 0
44-
for i in range(n):
45-
ans = max(ans, uf.size(i))
51+
for i in range(N):
52+
ans = max(ans, UF.size(i))
4653

4754
print(ans)
4855

56+
4957
if __name__ == "__main__":
5058
main()

0 commit comments

Comments
 (0)