平面最近点对
O ( n log n ) O(n\log n) O(nlogn)时间内求解平面最近点对:
将点按 x x x坐标排序,每次 ( l , m i d ) , ( m i d + 1 , r ) (l,mid),(mid+1,r) (l,mid),(mid+1,r)分治下去求解左右边点集的最近距离,设取 m i n min min后得到的值为 d d d。
现在考虑越过中线的点对:
只保留与中线距离
≤
d
\leq d
≤d的点,按
y
y
y坐标排序(这一步可以在分治的时候归并处理),线性扫一遍,对于每个点只求与它
y
y
y值差值
≤
d
\leq d
≤d的点之间的距离来更新答案。
这样可以保证对于每个点最多只需要检查 6 6 6个点(抽屉原理)。
平面周长最小三角形
同样分治下去,每层暴力找最小三角形。
popoqqq的题解