문제
백준 25500
설명
행성터널 + 환승
간선이 \(\mathrm{N}^2\) 로 존재하므로 이를 줄이는 것이 관건인 문제이다.
X, Y 좌표의 경우 행성터널 문제처럼 축에 대해 정렬 후 인접정점을 잇는 Greedy 전략을 사용하면 된다. 증명도 어렵지 않다.
Z 좌표의 경우 여러 정점이 K
의 모듈러에 의해 복잡하게 연결되어 있다. 이는 환승 문제처럼 정점들을 공통적으로 묶는 정점을 추가해 간선을 선형 단위로 줄일 수 있다.
이 두가지 테크닉만 알고 있었으면 간단하게 해결했을 문제.
참고로 int
에서는 오버플로우가 나므로 64bit 자료형을 사용해야한다.
시간 복잡도
O(\(\mathrm{N}\log{ \mathrm{N}}\))
코드
댓글남기기