λ¬Έμ
https://www.acmicpc.net/problem/1717
1717λ²: μ§ν©μ νν
μ΄κΈ°μ $n+1$κ°μ μ§ν© $\{0\}, \{1\}, \{2\}, \dots , \{n\}$μ΄ μλ€. μ¬κΈ°μ ν©μ§ν© μ°μ°κ³Ό, λ μμκ° κ°μ μ§ν©μ ν¬ν¨λμ΄ μλμ§λ₯Ό νμΈνλ μ°μ°μ μννλ €κ³ νλ€. μ§ν©μ νννλ νλ‘κ·Έλ¨μ μ
www.acmicpc.net
νμ΄
# λ°±μ€ 1717λ² λ¬Έμ - μ§ν©μ νν
import sys
sys.setrecursionlimit(1000000)
input = sys.stdin.readline
n, m = map(int, input().split())
parent = [i for i in range(n+1)]
def find_parent(x):
if parent[x] == x:
return parent[x]
parent[x] = find_parent(parent[x])
return parent[x]
def union_parent(a, b):
a = find_parent(a)
b = find_parent(b)
if a < b:
parent[b] = a
else:
parent[a] = b
for _ in range(m):
op, a, b = map(int, input().split())
if op == 1:
if find_parent(a) == find_parent(b):
print('YES')
else:
print('NO')
else:
union_parent(a, b)
Union-find μκ³ λ¦¬μ¦ μ¬μ©νμ¬ ν μ μλ λ¬Έμ μλ€.
'ποΈ Algorithm > π© λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
π© [λ°±μ€] [Python] [Gold5] 2493λ²_ν (0) | 2023.03.13 |
---|---|
π© [λ°±μ€] [Python] [Silver2] 5397λ²_ν€λ‘κ±° (0) | 2023.03.13 |
π© [λ°±μ€] [Python] [Silver2] 1406λ²_μλν° (0) | 2023.03.09 |
π© [λ°±μ€] [Python] [Silver2] 1699λ²_μ κ³±μμ ν© (0) | 2023.03.05 |
π© [λ°±μ€] [Python] [Silver1] 1080λ²_νλ ¬ (0) | 2023.03.01 |