cdq分治可以很好地处理平面点对间具有某种性质的值或数量,最近点对也不例外。
参考OI Wiki
先对x排序,cdq返回点集内部最近点对的距离记为mindis。
考虑如何合并左右区间,对于处于点集A的点a和B的点b,显然
∣ a . x − b . x ∣ < = m i n d i s |a.x-b.x|<=mindis ∣a.x−b.x∣<=mindis
设a,b属于C,找到C后,对于点p,k属于C,显然也要满足
∣ p . y − k . y ∣ < = m i n d i s |p.y-k.y|<=mindis ∣p.y−k.y∣<=mindis
可以证明,对于点p,C中满足上述性质的点不会超过7个,因为
∣ p . x − k . x ∣ < = m i n d i s |p.x-k.x|<=mindis ∣p.x−k.x∣<=mindis, ∣ p . y − k . y ∣ < = m i n d i s |p.y-k.y|<=mindis ∣p.y−
平面最近点对 cdq分治
最新推荐文章于 2023-08-27 15:48:36 发布