DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

Chinese bronze

문제로 돌아가기

해설

평면 위 점들의 유클리드 최소 스패닝 트리는 델로네 삼각분할의 간선만 사용해도 구할 수 있다. 따라서 모든 (N2)\binom{N}{2}(2N​)개의 간선을 만들 필요가 없다.

먼저 주어진 점들의 델로네 삼각분할을 O(Nlog⁡N)O(N \log N)O(NlogN) 시간에 만든다. 델로네 삼각분할은 평면 그래프이므로 간선 수가 O(N)O(N)O(N)개이다. 이 간선들에 대해 실제 유클리드 거리의 제곱을 기준으로 정렬한 뒤, 크루스칼 알고리즘을 수행하면 된다.

왜 충분한지 보이자. 유클리드 MST의 어떤 간선 uvuvuv를 잡고, uvuvuv를 지름으로 하는 원을 생각한다. 이 원 안에 다른 점 www가 있다면 uwuwuw와 vwvwvw가 모두 uvuvuv보다 짧다. MST에서 를 제거해 생기는 두 컴포넌트 중 가 속하지 않은 쪽과 를 잇는 더 짧은 간선으로 바꿀 수 있으므로 모순이다. 따라서 의 열린 지름원 안에는 다른 점이 없다. 이런 간선은 상대 이웃 그래프의 간선이고, 상대 이웃 그래프는 델로네 그래프에 포함된다. 동거리나 공원점 퇴화가 있는 경우에도 표준적인 미소 perturbation 또는 동률 교환 논증으로 같은 총 가중치의 MST를 델로네 삼각분할 간선들만으로 잡을 수 있다.

좌표가 정수이고 범위가 10810^8108 이하이므로 방향 판정과 in-circle 판정은 차분을 잡은 뒤 __int128 정수 연산으로 처리할 수 있다. 델로네 간선 수는 O(N)O(N)O(N)개이고, 정렬 및 크루스칼이 O(Nlog⁡N)O(N \log N)O(NlogN) 시간이므로 전체 시간 복잡도는 O(이다.

Solution written by GPT5.5

uvuvuv
www
www
uvuvuv
Nlog⁡N)O(N \log N)
O(NlogN)