最近点对
描述
给定n个二维平面上的点,求距离最近的一对点,输出他们的距离。
输入
第一行包含一个正整数n。
接下来n行,每行包含两个整数x,y,表示一个点的坐标。
输出
输出距离最近的一对点的距离,保留两位小数。
样例1输入
10
7 9
-8 -1
-3 -1
1 4
-3 9
6 -4
7 5
6 6
-6 10
0 8
样例1输出
1.41
样例1解释
距离最近的点为7和8,距离为√(7−6)2+(5−6)2=√2≈1.41
样例2输入
限制
对于70%的数据,2 ≤ n ≤ 2000,每个点坐标的绝对值不超过10^5;
对于100%的数据,2 ≤ n ≤ 3×10^5,每个点坐标的绝对值不超过10^9。
时间:10 sec
空间:512 MB
提示
[分治求最近点对。当然也可以用kdtree,虽然应该会超时。]
图片来源CG课程PA1(需要先加入CG课程)
另外,为了帮助大家完成题目,我们提供了只包含了输入输出功能的程序模板,也提供了含有算法的大部分实现细节的程序。
你可以根据自己的实际情况,在这些程序的基础上进行作答,或不参考这些程序,这将与你的得分无关。
这些程序可以从【这里】下载。