문제 링크
- http://icpc.me/6991
문제 출처
- 2008 KOI 고등부 3번
사용 알고리즘
- 정렬
- 해싱
시간복잡도
- $O(M \log M + N \log N)$
풀이
$K = 3$인 계통 그래프에서 (자기 자신을 포함해서) 인접한 정점이 같은 정점끼리 묶어줍시다. 함께 묶인 정점들은 계통 트리 상에서 거리가 2 이하이고, 이 정점들은 계통 트리 상에서 부모 정점이 동일합니다.
묶인 그래프에서 인접한 묶음에 속한 정점들은 계통 트리 상에서 거리가 3입니다. 인접한 묶음의 부모 정점끼리 간선으로 이어주면 계통 트리를 복원할 수 있습니다.
인접한 정점 리스트가 같은지 비교하는 것은, 인접한 정점들을 정렬한 뒤, 리스트를 해싱해서 비교하면 됩니다.
전체 코드
1 |
|