noip2010飛彈攔截

2021-08-17 10:48:15 字數 919 閱讀 1417

洛谷的題。。。在此省略題目。。。這題還是比較水的。。。

開始想用字首s1和與字尾s2和做。。。後來發現是不是。。。沒辦法還是自己太菜了。。。

其實這道題很簡單。。。就是給兩個點,然後一系列的點,問以這兩個點為圓心的半徑平方後之和最小是多少。。。我們可以用結構體排序做。。。用乙個結構體陣列a[i].s1和a[i].s2如下:

struct dra[100050];
a[i].s1和a[i].s2表示i點到s1和s2的距離

然後再結構體按照a[i].s1降序排序就好了,這樣排序處來,是以a[i].s1降序排序的,那麼從1->n中間i數的含義是,前面的i-1個點是用第二個點打,而i->n由於降序排序,第乙個點打到第i個點,那麼後面都能被打到,而前1到i-1個點,需要求乙個a[i].s2最大值然後與a[i].s1加起來。這樣的意思是我第一點最遠打到i點。這樣從1-n+1掃一遍即可。。。n+1表示。。。第乙個點壓根不打。。。

最後注意初始化。。。以及結構排序需要寫乙個結構體排序的cmp函式

bool cmp(dr a,dr b)
最後ac**

#include#include#include#includeusing namespace std;

struct dra[100050];

bool cmp(dr a,dr b)

int main()

sort(a+1,a+1+n,cmp);

a[0].s2=0;

a[n+1].s1=0;

int r=0;

int ans=1000000000;

for (int i=1;i<=n+1;i++)

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

}return 0;

}

NOIP 2010 飛彈攔截

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

noip2010 飛彈攔截

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

noip2010 飛彈攔截 (貪心)

p1810飛彈攔截 accepted 標籤 noip普及組2010 經過11 年的韜光養晦,某國研發出了一種新的飛彈攔截系統,凡是與它的距離不超過其工作半徑的飛彈都能夠被它成功攔截。當工作半徑為0 時,則能夠攔截與它位置恰好相同的飛彈。但該飛彈攔截系統也存在這樣的缺陷 每套系統每天只能設定一次工作半...