문제 링크
- http://icpc.me/1376
사용 알고리즘
- 세그먼트 트리
시간복잡도
- $O(N log N)$
풀이
각 정점마다, 인접한 정점 중 아직 방문하지 않은 정점을 세그먼트 트리로 관리해줍시다.
갈 수 있는 정점의 개수, 갈 수 있는 정점 중 번호가 가장 작은 정점, 중간값인 정점을 모두 구해줄 수 있습니다.
현재 구간에 있는 원소의 개수, K번째 원소를 찾는 쿼리와 임의의 원소를 제거하는 쿼리를 지원하는 세그먼트 트리를 열심히 구현해주면 됩니다.
Self Loop와 Multi Edge에 대한 예외처리가 필요합니다.
전체 코드
1 |
|