luogu#P7883. 平面最近点对(加强加强版)
平面最近点对(加强加强版)
题目背景
P1429 平面最近点对(加强版)里最高赞题解写道:
我们充分发扬人类智慧:
将所有点全部绕原点旋转同一个角度,然后按 坐标排序
根据数学直觉,在随机旋转后,答案中的两个点在数组中肯定不会离得太远
所以我们只取每个点向后的 个点来计算答案
这样速度快得飞起,在 时都可以在 1 s 内卡过
当然,这是错的。
题目描述
给定 个二维欧几里得平面上的点 ,请输出距离最近的两个点的距离。
输入格式
输入第一行为一个正整数 ,表示点数。
接下来 行,第 行为用空格隔开的整数 ,表示 。
输入保证:没有两个坐标完全相同的点。
输出格式
输出一行,包含一个整数 ,表示距离最近的两个点的距离的平方。
由于输入的点为整点,因此这个值一定是整数。
2
-10000000 -10000000
10000000 10000000
800000000000000
5
1 1
1 9
9 1
9 9
0 10
2
提示
对于第二组样例,、 两个点最近,距离为 ,因此你需要输出 。
数据范围
对于 的数据,,。
本题目标复杂度是 。设置 350ms 时限的原因是:
- 参考代码使用
cin
不会 TLE。最快的 std 能 100ms。 - @wlzhouzhuan 的程序能恰好在 350ms 内跑 次检查。
- 150 组测试数据,为了防止卡评测。