목차

친구 네트워크

ps
링크acmicpc.net/…
출처BOJ
문제 번호4195
문제명친구 네트워크
레벨골드 2
분류

Disjoint Set

시간복잡도O(n*α(n))
인풋사이즈n<=100,000
사용한 언어Python
제출기록65016KB / 356ms
최고기록260ms
해결날짜2022/06/24
태그

29단계

풀이

코드

"""Solution code for "BOJ 4195. 친구 네트워크".

- Problem link: https://www.acmicpc.net/problem/4195
- Solution link: http://www.teferi.net/ps/problems/boj/4195

Tags: [DisjointSet]
"""

import collections
import itertools
import sys
from teflib import disjointset


def main():
    T = int(sys.stdin.readline())
    for _ in range(T):
        F = int(sys.stdin.readline())
        id_by_name = collections.defaultdict(itertools.count().__next__)
        dsu = disjointset.DisjointSet(F * 2)
        for _ in range(F):
            name1, name2 = sys.stdin.readline().split()
            merged_set = dsu.union(id_by_name[name1], id_by_name[name2])
            print(dsu.size(merged_set))


if __name__ == '__main__':
    main()