문제 링크
- http://icpc.me/16307
문제 출처
- 2018 BAPC D번
사용 알고리즘
- BFS
- Union Find
시간복잡도
- $O(N log N)$
풀이
대충 BFS를 돌리면 $O(N^2)$라는, TLE 받기 딱 좋은 복잡도가 나옵니다. BFS를 잘 돌려봅시다.
핵심적인 관찰이 있는데, $(a, c)$가 indistinguishable하고, $(c, b)$가 indistinguishable하면 $(a, b)$도 indistinguishable합니다.
이 점을 이용해 union-find와 함께 BFS를 돌려주면 $O(N log N)$ 혹은 $O(N \alpha(N))$에 풀 수 있습니다.
전체 코드
1 |
|