1. 程式人生 > >icpc沈陽網絡賽。cake cake!

icpc沈陽網絡賽。cake cake!

重復 image 技術 設立 操作 進行 另一個 bsp 就是

技術分享圖片

題意:給定n個點極其坐標,求畫一個至少能包括到m個點的圓,且圓的半徑為最小

解題:半徑:二分,從給定範圍開始即1e4/2;

一次遍歷,以其中任意一點(枚舉點)為圓心,畫半徑為2*r的圓(代表另一個點是否在它的觸及範圍,此時並不是這個枚舉點就是圓心)

在這個大圓範圍內的所有點為可觸點,以可觸點為圓心畫半徑為r的圓(此步主要是為了極角排序,方便掃描);大圓與這些小圓的交點為端點,其中一個標1,另一個標-1;

然後進行極角排序,為每一個點設立一個極角,方便掃描一圈,然後如果遇到1則表示進入一段含小圓的區域,遇到-1代表離開一段區域,所以+1和-1重復操作,記錄過程中最大值。

+1-1的方法也適用於

icpc沈陽網絡賽。cake cake!