JSOI2016 炸彈攻擊Attack

2021-08-04 05:38:19 字數 2246 閱讀 4643

炸彈攻擊

【故事背景】

jyy 最近迷上了一款塔防遊戲,在遊戲裡 jyy 除了建設建築,還可以使用

炸彈對螢幕上的敵人進行範圍殺傷。

【問題描述】

遊戲地圖可以簡單認為是乙個 2 維平面。

jyy 建造了 n 個建築,每個建築都是乙個圓,其中第 i 個建築的圓心位於

(x 」 , y 」 )且半徑為r 」 。

地圖上一共有 m 個敵人,乙個敵人可以近似看成乙個平面上的點,其中第 i

個敵人位於(p 」 , q 」 )。

jyy 可以使用一枚可以設定半徑的炸彈,可以設定乙個不超過 r的範圍,然

後選擇平面上的乙個點引爆,範圍內的所有敵人全部消滅。當然,由於炸彈威力

巨大,如果**範圍接觸到 jyy 的建築,那麼 jyy 的建築也會受到損傷。

(注:

如果炸彈的**範圍僅接觸到了 jyy 建築的邊界,則不會對 jyy 的建築造成損

傷;如果敵人出現在了**範圍的邊界,則該敵人被消滅)

jyy 可以自由控制炸彈的**地點和**半徑。作為乙個保守的玩家,他希

望在保證自己建築毫髮無損的情況下,消滅盡量多的敵人。

【輸入格式】

從檔案 attack.in 中讀入資料。

第一行包含三個非負整數,分別為 n,m,r。

接下來 n 行,每行 3 個整數,其中第 i 的為 x 」 , y 」 , r 」 ,表示第 i 個建築的位置

和半徑。資料保證所有建築不相交(但是有可能邊界接觸)。

接下來 m 行,每行 2 個整數,其中第 i 行為 p 」 , q 」 ,表示第 i 個敵人的位置。

【輸出格式】

輸出到檔案 attack.out 中。

輸出一行乙個整數,表示 jyy 最多可以消滅的敵人數量。

【輸入樣例 1】

1 5 3

0 0 1

3 3

-3 3

3 -3

3 0

0 3

第 6 頁

共 7 頁江蘇省省隊第一輪選拔賽

第一試 炸彈攻擊

【輸出樣例 1】

3 【輸入樣例 2】

4 10 100

0 0 3

10 0 3

10 10 3

0 10 3

0 4

0 5

0 6

5 3

5 -3

5 5

6 7

3 6

10 4

8 4

【輸出樣例 2】

5 【樣例說明】

第乙個樣例中,最佳攻擊選擇應將炸彈在 3,3 引爆並將半徑設定為 3。

【資料規模】

對於 20%的資料滿足 m = 2。

對於另外 20%的資料,滿足 n = 0;

對於另外 20%的資料,滿足 m ≤ 50;

對 於 100% 的 數 據 , 滿 足 0 ≤ n ≤ 10, 0 < m ≤ 10 d , 1 ≤ r, r 」 ≤ 20000 ,

p 」 , q 」 , x 」 , y 」 ≤ 20000。

計算幾何太弱了qwq 只會寫模擬退火》 <

對著資料調到了100…不對著資料大概可以50-80吧?

#include 

#define n 20

#define m 1010

#define inf int_max

#define eps 1e-7

using namespace std

;int n,m,r,ans(0);

double dis(inf);

struct circlec[n];

struct point

point(int d)

}e[m],cur,p,tmp,l(inf),r(-inf);

inline double rand()

inline double calc(point x)

void sa(double t)

t=1000

; for (int i=1

;i<=100000;i++)

}int main()

sa(max(r.x-l.x,r.y-r.x));

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

return 0

;}

JSOI2016 炸彈攻擊(模擬退火)

模擬退火居然不出題答,這個出題人腦子進水了。由最小圓覆蓋那一套,最優的圓是以上三種情況之一 1.乙個答案點就是圓,半徑 0 2.兩個點連成的線段為直徑的圓 3.三點共園 直接列舉,判斷是 o m 4 的。可能可以優化掉乙個 m 然後你發現做不下去了。考慮退火,這個題直接以覆蓋的點數作為價值退火是不太...

模擬退火 JSOI2016 炸彈攻擊1

題目背景 jyy 最近迷上了一款塔防遊戲,在遊戲裡 jyy 除了建設建築,還可以使用炸彈對螢幕上的敵人進行範圍殺傷。題目描述 遊戲地圖可以簡單認為是乙個二維平面。jyy 建造了nn個建築,每個建築都是乙個圓,其中第ii個建築的圓心位於 x i,y i xi yi 且半徑為r iri 地圖上一共有mm...

JSOI2016 最佳團隊

這種最大化形如 x y 的式子的題,很容易想到分數規劃。二分答案,對於當前的mid,設d i p i mid s i 考慮到當乙個節點i被選,那麼fa i 也要被選,那麼乙個想法是選取當前最大的d,然後把它的兒子的d放入堆裡。但是這個方法是錯誤的 然而我一開始就這麼打了,只有10分 題目給出的是一棵...