DOJ logoDOJ
题目
最近添加的题目收藏的题目Workbooks
分类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)