經過 11 年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為 0 時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷:每套系統每天只能設定一次工作半徑。而當天的使用代價,就是所有系統工作半徑的平方和。
某天,雷達捕捉到敵國的飛彈來襲。由於該系統尚處於試驗階段,所以只有兩套系統投入工作。如果現在的要求是攔截所有的飛彈,請計算這一天的最小使用代價。
第一行包含 4 個整數x1、y1、x2、y2,每兩個整數之間用乙個空格隔開,表示這兩套飛彈攔截系統的座標分別為(x1, y1)、(x2, y2)。 第二行包含 1 個整數 n,表示有 n顆飛彈。接下來 n行,每行兩個整數 x、y,中間用 乙個空格隔開,表示一顆飛彈的座標(x, y)。不同飛彈的座標可能相同。
輸出只有一行,包含乙個整數,即當天的最小使用代價。
input0 0 10 0
2 -3 3
10 0
output
18
input0 0 6 0
5 -4 -2
-2 3
4 0
6 -2
9 1output
30
hint兩個點(x1, y1)、(x2, y2)之間距離的平方是(x1− x2)2+(y1−y2)2。
兩套系統工作半徑 r1、r2的平方和,是指 r1、r2 分別取平方後再求和,即 r12+r22。
【樣例 1 說明】
樣例1 中要攔截所有飛彈,在滿足最小使用代價的前提下,兩套系統工作半徑的平方分
別為18 和0。
【樣例2 說明】
樣例中的飛彈攔截系統和飛彈所在的位置如下圖所示。要攔截所有飛彈,在滿足最小使
用代價的前提下,兩套系統工作半徑的平方分別為20 和10。
資料範圍
對於10%的資料,n = 1
對於20%的資料,1 ≤ n ≤ 2
對於40%的資料,1 ≤ n ≤ 100
對於70%的資料,1 ≤ n ≤ 1000
對於100%的資料,1 ≤ n ≤ 100000,且所有座標分量的絕對值都不超過1000。
設攔截系統為 a,b
按照飛彈到其中乙個攔截系統 a 的距離排序,將離 a 最近的 i 個飛彈都交給 a ,其餘給 b
倒序列舉斷點,每次更新答案
這個題被智障的錯誤卡了好久
#include
#include
#include
using
namespace
std;
int x1,y1,x2,y2,n,mn=1e9;
struct nodea[1000010];
bool cmp(const node &x ,const node &y)
int main()
sort(a+1,a+n+1,cmp);
int rb=0;
for(int i=1;i<=n;i++)
cout
0;}
洛谷 P1158 飛彈攔截
題目描述 經過 11 年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為 0 時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷 每套系統每天只能設定一次工作半徑。而當天的使用代價,就是所有系統工作半徑的平方和。某...
洛谷p1158 飛彈攔截
這道題是個有想法的列舉qwq 飛彈攔截 題目鏈結 注意 此飛彈攔截非彼飛彈攔截p1020 飛彈攔截 一道題是1999年的,然後我們現在要寫的是經過11年韜光養晦之後的飛彈攔截 solution 要不先說一說我錯誤的貪心防止踩坑?錯誤貪心1 40pts 先比較某個點到攔截系統1和2的距離,取距離較小的...
洛谷P1158 飛彈攔截 排序
恢復內容開始 洛谷p1158 飛彈攔截 排序 算是有技巧的列舉吧 題意 用兩套系統來攔截飛彈,乙個系統的費用等於這個系統攔截的飛彈中離他最遠的那顆飛彈 和系統的距離 的平方 排序 將每顆飛彈按距離系統1 的距離排序,然後列舉n 0 選這些飛彈為系統1最遠能夠攔截的飛彈 然後就可以更新下一次 系統2要...