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格 則損失一半的生命力。也就是說,一次...