Submission #4462269
Source Code Expand
class UnionFind: def __init__(self, n): # par[x]: x が根のときは x を含むグループのサイズ (の -1 倍)、そうでないときは親ノード self.par = [-1 for i in range(n + 1)] # 親ノードの検索 def root(self, x): if self.par[x] < 0: return x else: self.par[x] = self.root(self.par[x]) return self.par[x] # 併合 # x と y を同じグループにする, 計算量はならし O(α(n)) def union(self, x, y): x = self.root(x) y = self.root(y) if x == y: return if self.par[x] > self.par[y]: x, y = y, x self.par[x] += self.par[y] self.par[y] = x # x と y が同じグループにいるか, 計算量はならし O(α(n)) def issame(self, x, y): return self.root(x) == self.root(y) # size(x): x を含むグループの所属メンバー数 def size(self, x): return -self.par[self.root(x)] if __name__ == '__main__': N, Q = list(map(int, input().split())) # print(Town.par) Town = UnionFind(N) for i in range(Q): P, A, B = map(int, input().split()) if P == 0: Town.union(A, B) elif P == 1: if Town.issame(A, B): print('Yes') else: print('No')
Submission Info
Submission Time | |
---|---|
Task | B - Union Find |
User | ngs_436 |
Language | Python (3.4.3) |
Score | 100 |
Code Size | 1426 Byte |
Status | AC |
Exec Time | 1757 ms |
Memory | 4528 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 100 / 100 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 00_sample_01.txt |
All | 00_sample_01.txt, subtask_01_01.txt, subtask_01_02.txt, subtask_01_03.txt, subtask_01_04.txt, subtask_01_05.txt, subtask_01_06.txt, subtask_01_07.txt, subtask_01_08.txt, subtask_01_09.txt, subtask_01_10.txt, subtask_01_11.txt, subtask_01_12.txt, subtask_01_13.txt, subtask_01_14.txt, subtask_01_15.txt, subtask_01_16.txt, subtask_01_17.txt, subtask_01_18.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_01.txt | AC | 17 ms | 3064 KB |
subtask_01_01.txt | AC | 1034 ms | 3444 KB |
subtask_01_02.txt | AC | 22 ms | 3992 KB |
subtask_01_03.txt | AC | 1697 ms | 3828 KB |
subtask_01_04.txt | AC | 1726 ms | 4528 KB |
subtask_01_05.txt | AC | 126 ms | 3064 KB |
subtask_01_06.txt | AC | 120 ms | 4016 KB |
subtask_01_07.txt | AC | 1698 ms | 3700 KB |
subtask_01_08.txt | AC | 1709 ms | 4520 KB |
subtask_01_09.txt | AC | 18 ms | 3064 KB |
subtask_01_10.txt | AC | 22 ms | 3992 KB |
subtask_01_11.txt | AC | 1737 ms | 3700 KB |
subtask_01_12.txt | AC | 1757 ms | 4520 KB |
subtask_01_13.txt | AC | 1325 ms | 3572 KB |
subtask_01_14.txt | AC | 25 ms | 4016 KB |
subtask_01_15.txt | AC | 1701 ms | 3700 KB |
subtask_01_16.txt | AC | 1728 ms | 4528 KB |
subtask_01_17.txt | AC | 1400 ms | 4264 KB |
subtask_01_18.txt | AC | 1437 ms | 4264 KB |