p1429 平面最近點對(加強版)
分治。
左邊的最近距離為 \(dl\),右邊的最近距離為 \(dr\)。
如何得到整塊的最近距離?
我們所需要做的就是計算兩塊之間距離小於 \(d = \min(dl, dr)\) 的點之間的距離然後取最小值。
先把兩塊中距離 \(mid\) 的水平距離小於 \(d\) 的點加入乙個集合,然後按縱座標排序暴力去計算距離。
可以證明在這個區域內距離小於 \(d\) 的點對有很少。
}三維的怎麼做?
p1429 平面最近點對
題意 給平面n個點,求最近的兩個點的距離。思路 運用分治思想,對於n個點,可以分成t n 2 t n 2 的規模,分界線是x座標的中位數,假設左邊點集合為s1,右邊點集合為s2,那麼最小值存在於以下三種情況中。1.s1中任意兩點距離的最小距離 2.s2中任意兩點距離的最小距離 3.s1中的點到s2中...
洛谷P1429 平面最近點對(加強版)
給定平面上n個點,找出其中的一對點的距離,使得在這n個點的所有點對中,該距離為所有點對中最小的 輸入格式 第一行 n 2 n 200000 接下來n行 每行兩個實數 x y,表示乙個點的行座標和列座標,中間用乙個空格隔開。輸出格式 僅一行,乙個實數,表示最短距離,精確到小數點後面4位。輸入樣例 1 ...
洛谷P1429 平面最近點對(加強版)
核心是分治演算法 分別根據點的 x,y 值進行排序 在 x 軸上劃一道垂線,將點均分成兩半 假設最近點對都在左 右部分,遞迴計算左 右半部分的最短距離 並返回較小值 dis 假設最近點對分別在左右兩個部分,橫跨中心的豎線.中心線為中心,2 dis 為寬度畫乙個矩形,橫跨中心線的最近點對 candid...