codevs 3061 質子撞擊炮

2021-10-08 03:54:27 字數 1683 閱讀 7631

時間限制: 1 s

空間限制: 32000 kb

題目等級 : ** gold

description

【抱歉資料錯誤~~已修復】

歐盟簡直是太貪心了。繼完成與蘇聯的合作滅了尤里之後,繼續與蘇聯交戰。可惜的是,在這期間,傳說中的小日本(旭日帝國·昇陽帝國)居然強大起來了。盟軍重新與蘇聯合作,準備殲滅日本。在小愛(愛因斯坦)之後,不少盟軍的傑出科學家合作發明了閃電風暴二代:質子撞擊炮。它的好處就是冷卻時間短,威力大。每當一次攻擊過後,五發質子能量炮彈一齊落在敵人基地裡,造成毀滅性的打擊。缺點就是,炮彈先打到外太空再掉進敵人家中,飛的時間太長了。盟軍老大迫不及待的想知道這次攻擊能毀掉日本多少建築物,請你程式設計幫忙算一下。資料詳見輸入描述。

輸入描述 

input description

輸入的第一行n,表示敵方陣營的大小。

輸入的第2~n+1,表示輸入乙個敵方陣營圖。陣營圖中每個元素由0-9組成。0表示沒有建築物,其餘數字表示當前建築物的血量值。(預設每個建築物佔乙個方格)。

輸入的接下來五行,表示五發質子能量炮彈的落點中心,表示落點在笛卡爾座標系的某個點上。質子能量炮彈對中心造成2點傷害,對以該點為九宮格中心的其他八個方格造成一點傷害。如果某個點的建築物血量被轟擊至0或更低,則稱這個建築物被擊毀。

輸出描述 

output description

僅一行,被擊毀的建築物數量。

樣例輸入 

sample input

0 3 1 2 4

1 3 4 1 0

0 0 3 4 1

1 3 4 5 0

0 0 9 0 0

1 22 2

4 34 3

2 4

樣例輸出 

sample output

資料範圍及提示 

data size & hint

(點a,點b)表示第a行第b列

原題有誤,我更正一下。

順便加強了資料(最大1000*1000的鄰接矩陣);

1 #include2 int x,y;

3 int n;

4 int a[1000+10][1000+10];

5 bool b[1000+10][1000+10];

6 int dx[10]=;

7 int dy[10]=;

8 void daji(int x,int y)

9

14 int main()

15

23 for(int i=1;i<=5;i++)

24

28 int ans=0;

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

30 for(int j=1;j<=n;j++)

31 if(a[i][j]<=0&&b[i][j]==true)

32 ans++;

33 printf("%d",ans);

34 return 0;

35 }

hdu 3061 最大流最小割

題目 中文題 最小割,增加源和匯,把源與權為正的點連上界為該點權值的邊,權為負的點與匯連上上界為該點權值相反數的邊,然後如果攻占a必須先佔b,則連上權值無窮的邊a b,所有正值之和減去最大流,即答案。include include include include includeusing names...

HDU 3061 Battle 最大權閉合

題目大意 由於小白同學近期習武十分刻苦,很快被晉公升為天策軍的統帥。而他上任的第一天,就面對了一場極其困難的戰鬥 據偵查兵回報,前方共有n座城池,考慮到地勢原因,最終得到乙個結論 攻占某些城池之前必須攻占另外一些城池。事實上,可以把地圖看做是一張拓撲圖,而攻占某個城池,就意味著必須先攻占它的所有前驅...

poj 3061 二分 or 尺取法

傳送門 problem 3061 馬上就要去上課了,先獻上二分ac 其餘的有空再補 題意 給定長度為 n 的整數數列 a 0,1,2,n 以及整數 s。求出總和不小於 s 的連續子串行的長度的最小值。如果解不存在,則輸出 0。題解 1 二分 由於所有的元素都大於 0 所以陣列a 的字首和sum 為遞...