题目链接:
https://www.luogu.org/problemnew/show/P1429
题目描述
给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的
输入输出格式
输入格式:
第一行:n;2≤n≤200000
接下来n行:每行两个实数:x y,表示一个点的行坐标和列坐标,中间用一个空格隔开。
输出格式:
仅一行,一个实数,表示最短距离,精确到小数点后面4位
题解:
这道题是一个很经典的平面上分治法的题。
uva上有一个类似的题,那道题数据很水,UVA - 10245 O(n*n)暴力都能过。
具体做法参考挑战程序设计竞赛上的题解。
inplace_merge(first,mid,last,compare);//将[first,mid) 和 [mid,last)这两个区间进行归并成一个有序序列。
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn=2e5+5;
const d