题目描述
给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的
输入输出格式
输入格式:
第一行:n;2≤n≤200000
接下来n行:每行两个实数:x y,表示一个点的行坐标和列坐标,中间用一个空格隔开。
输出格式:
仅一行,一个实数,表示最短距离,精确到小数点后面4位。
输入输出样例
输入样例#1:
3
1 1
1 2
2 2
输出样例#1:
1.0000
说明
0<=x,y<=10^9
题解
这是一道分治。
首先,暴力枚举点对计算是n^2,肯定超。
然后数据范围200000,就肯定是nlogn的算法,然后我就想到二分答案,也进行了实现,然后,就没有然后了。。。
于是我就愉快地看了题解,发现确实是二分,可是只是二分区间,然后再合并,就像归并排序。
忽然发现很有道理,因为,点对是两个点,然后就可以分治地去找到满足条件的点对,并更新答案了。
然后,我就写了一遍,还是很好写的,真的很像归并排序求逆序对。
然后我就交了一次:
结果60,我就当场懵逼。。
然后回去看题解,发现他写了实数读入优化,我就copy过来,想着试一试,又交了一次,然后:
<