7 42 大炮打蚊子 15 分

2021-09-21 06:35:14 字數 1690 閱讀 7992

7-42 大炮打蚊子 (15 分)(c)
現在,我們用大炮來打蚊子:蚊子分布在乙個m×n格的二維平面上,每只蚊子佔據一格。向該平面的任意位置發射炮彈,炮彈的殺傷範圍如下示意:

o

oxoo

其中,x為炮彈落點中心,o為緊靠中心的四個有殺傷力的格仔範圍。若蚊子被炮彈命中(位於x格),一擊斃命,若僅被殺傷(位於o格),則損失一半的生命力。也就是說,一次命中或者兩次殺傷均可消滅蚊子。現在給出蚊子的分布情況以及連續k發炮彈的落點,給出每炮消滅的蚊子數。

輸入格式:

第一行為兩個不超過20的正整數m和n,中間空一格,表示二維平面有m行、n列。

接下來m行,每行有n個0或者#字元,其中#表示所在格仔有蚊子。

接下來一行,包含乙個不超過400的正整數k,表示發射炮彈的數量。

最後k行,每行包括一發炮彈的整數座標x和y(0≤x輸出格式:

對應輸入的k發炮彈,輸出共有k行,第i行即第i發炮彈消滅的蚊子數。

輸入樣例:

5 600#00#

000###

00#000

000000

00#000

21 2

1 4輸出樣例:02

#include

#include

intmain()

,wenzong[

500]

=,sheheng[

500]

=,shezong[

500]

=,jishu[30]

[30]=

;char a[30]

[30]=

;scanf

("%d %d"

,&m,

&n);

//平面大小

for(i=

0;i)scanf

("%s"

,&a[i]);

//每行蚊子分布

scanf

("%d"

,&k)

;//炮彈數量

for(i=

0;i)scanf

("%d %d"

,&sheheng[i]

,&shezong[i]);

//每個炮彈座標

for(i=

0;i)//記下所有蚊子座標

for(j=

0;j(a[i]

[j]==

'#')

for(i=

0;i(fabs

(wenheng[j]

-h)==1&&

fabs

(wenzong[j]

-z)==0||

fabs

(wenheng[j]

-h)==0&&

fabs

(wenzong[j]

-z)==1)

//如果在炮彈周圍

jishu[wenheng[j]

][wenzong[j]]++

;}for(p=

0;p)//每射乙個炮彈檢查一次

for(q=

0;q(jishu[p]

[q]==2)

printf

("%d\n"

,count)

; count=0;

}return0;

}

7 6 大炮打蚊子

現在,我們用大炮來打蚊子 蚊子分布在乙個m n格的二維平面上,每只蚊子佔據一格。向該平面的任意位置發射炮彈,炮彈的殺傷範圍如下示意 ooxo o其中,x為炮彈落點中心,o為緊靠中心的四個有殺傷力的格仔範圍。若蚊子被炮彈命中 位於x格 一擊斃命,若僅被殺傷 位於o格 則損失一半的生命力。也就是說,一次...

5 5 大炮打蚊子 15分

現在,我們用大炮來打蚊子 蚊子分布在乙個m times nm n格的二維平面上,每只蚊子佔據一格。向該平面的任意位置發射炮彈,炮彈的殺傷範圍如下示意 o oxo o其中,x為炮彈落點中心,o為緊靠中心的四個有殺傷力的格仔範圍。若蚊子被炮彈命中 位於x格 一擊斃命,若僅被殺傷 位於o格 則損失一半的生...

7 7 大炮打蚊子 (15 分)

現在,我們用大炮來打蚊子 蚊子分布在乙個m n格的二維平面上,每只蚊子佔據一格。向該平面的任意位置發射炮彈,炮彈的殺傷範圍如下示意 ooxo o其中,x為炮彈落點中心,o為緊靠中心的四個有殺傷力的格仔範圍。若蚊子被炮彈命中 位於x格 一擊斃命,若僅被殺傷 位於o格 則損失一半的生命力。也就是說,一次...