UVA10245 The Closest Pair Problem 题解
就是求 $n$ 个点的平面最近点对。
$n \le 10^4$ 加上多测的数据范围是不能用 $\mathcal{O}(n^2)$ 的时间复杂度卡过的。
这是一种很经典的问题,有 $\mathcal{O}(n\log n)$ 和 $\mathcal{O}(n)$ 的做法。在这里 $\mathcal{O}(n\log n)$ 的时间复杂度足以通过。
若不会 $\mathcal{O}(n\log n)$ 的分治做法,请先完成这道题和这道题。
在分治最后的合并中,很容易误以为是 $\mathcal{O}(n^2)$ 的,但可以证明合并的点数不会超过 $6$ 个。
假如合并前的最短距离是 $h$,那么最后统计答案时一定是在一个 $h\times 2h$ 的一个长方形中。
将这个长方形分为左右两个边长为 $h$ 的正方形,那么在一个正方形中,两两间的距离 $\ge h$ 的点最多有 $3$ 个,所以这个长方形中最多存在 $6$ 个点。
时间复杂度 $\mathcal{O}(n\log n)$。