排序 貪心 飛彈攔截 luogu 1158

2022-08-18 06:18:10 字數 983 閱讀 1398

經過 11年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為0時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷:每套系統每天只能設定一次工作半徑。而當天的使用代價,就是所有系統工作半徑的平方和。

某天,雷達捕捉到敵國的飛彈來襲。由於該系統尚處於試驗階段,所以只有兩套系統投入工作。如果現在的要求是攔截所有的飛彈,請計算這一天的最小使用代價。

我們將乙個飛彈距離兩個攔截裝置的距離算出來,在按照距離第乙個裝置的距離為關鍵字排序(按照第二個的也一樣的),從小到大排序,在從最後乙個,也就是距離第乙個裝置距離最長的飛彈開始,比較距離第二個裝置的距離。

因為我們要算出最少的代價,也就是要算出最少的距離第乙個和第二個裝置的長度,那麼我們如果找到當前的距離第二個裝置的距離比當前的最小值要小,那麼就把當前的最小值替換掉,然後算如果要覆蓋當前這個飛彈所代價,在和答案的最小的值進行比較,就可以了。

#include using namespace std;

#define ms(a,b) memset(a,b,sizeof(a))

typedef long long ll;

const int maxn=100005;

const int inf=1<<30;

int x1,x2,y1,y2;

int n;

struct systemissile[maxn];

int calc(int x1,int y1,int x2,int y2)

inline int read()

while(isdigit(ch)) x=(x<<3)+(x<<1)+(ch^48),ch=getchar();

return w?-x:x;

}inline bool cmp (syste a,syste b)

printf("%d\n",ans);

return 0;

}

飛彈攔截(貪心)

b b time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1257 description 某國為了防禦敵國的飛彈襲擊,發展出一種飛彈攔截系統.但是這種飛彈攔截系統有乙個...

攔截飛彈 貪心

問題描述 某國為了防禦敵國的飛彈襲擊,開發出一種飛彈攔截系統,但是這種攔截系統有乙個缺陷 雖然它的第一發炮彈能夠到達任意的高度,但是以後每一發炮彈都不能高於前一發的高度。某天,雷達捕捉到敵國的飛彈來襲,由於該系統還在試用階段。所以一套系統有可能不能攔截所有的飛彈。輸入飛彈依次飛來的高度 雷達給出的高...

luogu3903 飛彈攔截3

luogu3903 飛彈攔截3 題目描述 很多年以前,a國發明了一種飛彈系統用來攔截敵對勢力發射的飛彈。這個系統可以發射一顆飛彈攔截從由到遠 高度不增加的多個飛彈。但是現在,科學家們發現這個防禦系統還不夠強大,所以他們發明了另外一套飛彈系統。這個新系統可以發射一顆飛彈由近到遠的攔截更多的飛彈。當這個...