7-42 大炮打蚊子 (15 分)(C)

现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格。向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意:

  OOXOO

其中,X为炮弹落点中心,O为紧靠中心的四个有杀伤力的格子范围。若蚊子被炮弹命中(位于X格),一击毙命,若仅被杀伤(位于O格),则损失一半的生命力。也就是说,一次命中或者两次杀伤均可消灭蚊子。现在给出蚊子的分布情况以及连续k发炮弹的落点,给出每炮消灭的蚊子数。

输入格式:
第一行为两个不超过20的正整数M和N,中间空一格,表示二维平面有M行、N列。

接下来M行,每行有N个0或者#字符,其中#表示所在格子有蚊子。

接下来一行,包含一个不超过400的正整数k,表示发射炮弹的数量。

最后k行,每行包括一发炮弹的整数坐标x和y(0≤x<M,0≤y<N),之间用一个空格间隔。

输出格式:
对应输入的k发炮弹,输出共有k行,第i行即第i发炮弹消灭的蚊子数。

输入样例:
5 6
00#00#
000###
00#000
000000
00#000
2
1 2
1 4
输出样例:
0
2

#include<stdio.h>
#include<math.h>
int main()
{int M,N,i,j,k,h,z,m=0,p,q,count=0,wenheng[500]={0},wenzong[500]={0},sheheng[500]={0},shezong[500]={0},jishu[30][30]={0};char a[30][30]={'\0'};scanf("%d %d",&M,&N);//平面大小for(i=0;i<M;i++)scanf("%s",&a[i]);//每行蚊子分布scanf("%d",&k);//炮弹数量for(i=0;i<k;i++)scanf("%d %d",&sheheng[i],&shezong[i]);//每个炮弹坐标for(i=0;i<M;i++)//记下所有蚊子坐标for(j=0;j<N;j++)if(a[i][j]=='#'){wenheng[m]=i;wenzong[m++]=j;}for(i=0;i<k;i++){h=sheheng[i];z=shezong[i];for(j=0;j<m;j++)//炮弹旁边有不有蚊子{if(wenheng[j]==h&&wenzong[j]==z)//如果正中{if(jishu[wenheng[j]][wenzong[j]]==1)jishu[wenheng[j]][wenzong[j]]++;elsejishu[wenheng[j]][wenzong[j]]+=2;}if(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<M;p++)//每射一个炮弹检查一次for(q=0;q<N;q++)if(jishu[p][q]==2){jishu[p][q]++;//让计数不等于二避免后面统计重复count++;}printf("%d\n",count);count=0;}return 0;
}

7-42 大炮打蚊子 (15 分)相关推荐

  1. 5-14 大炮打蚊子 (15分)

    5-14 大炮打蚊子   (15分) 现在,我们用大炮来打蚊子:蚊子分布在一个M\times NM×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXO ...

  2. 大炮打蚊子 (15 分)(二维数组训练)

    鉴于网络上找不到自己看得懂的c语言代码,我打算自己发一下,希望可以帮助更多朋友 题目内容: 样例: 参考代码: PS:先看主函数注释再看自定义函数注释 #include<stdio.h>i ...

  3. j-4 大炮打蚊子 (10 分)关于最后一个测试点出错及本题的具体思路(以作者思路为例)

    j-4 大炮打蚊子 (10 分) 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹, 炮弹的杀伤范围如下示意: O OXO    O 其中,X ...

  4. 4-2 多项式求值   (15分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式 f(x)=∑i=0n(a[i]×xi)f(x)=\sum_{i=0}^{n}(a[i]

    4-2 多项式求值   (15分) 本题要求实现一个函数,计算阶数为n,系数为a[0] ... a[n]的多项式f(x)=∑i=0n(a[i]×xi)f(x)=\sum_{i=0}^{n}(a[i]\ ...

  5. 7-4 大炮打蚊子 (20分)__C++

    题目 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXOO 其中,X为炮弹落点中心,O为紧靠中心的四个有杀 ...

  6. 大炮打蚊子(c语言易懂版)

    7-80 大炮打蚊子 (15 分) 有问题欢迎咨询. 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXO ...

  7. 7-80 大炮打蚊子(C语言)

    7-80 大炮打蚊子 (15 分) 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXO  O 其中,X为炮 ...

  8. 【听说有人想转码】大炮打蚊子----用二维数组写小游戏

    上题目 大炮打蚊子 (5 分) 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的杀伤范围如下示意: O OXOO 其中,X为炮弹落点中 ...

  9. 7-3 大炮打蚊子(15 分)

    这道题其实不难,水题,好长时间没发了,发一个 题目: 7-3 大炮打蚊子(15 分) 现在,我们用大炮来打蚊子:蚊子分布在一个M×N格的二维平面上,每只蚊子占据一格.向该平面的任意位置发射炮弹,炮弹的 ...

最新文章

  1. 进程和线程的区别与联系
  2. 粘贴铜箔简易实验电路制作
  3. paho.mqtt.embedded-c-master c语言版本架构
  4. python文件和目录操作方法大全(含实例)
  5. spring boot使用外置tomcat部署需要排除的依赖
  6. C++菱形继承产生的问题和解决
  7. 洛谷 P1800 software_NOI导刊2010提高(06)(二分答案+DP检验)
  8. 2019年最新资料!共7T!
  9. typeof和instanceof的用法
  10. 投资顾问模式将改变整个基金行业
  11. java ftl 模板 输出list_关于在freemarker模板中遍历数据模型ListJavaBean的经验
  12. vba随机抽取人名不重复_用vb编写个随机滚动抽取人名的抽奖系统,怎么样做到不重复并添加一个记录显示已抽到的人名...
  13. 推荐算法之协同过滤算法详解(原理,流程,步骤,适用场景)
  14. php tracert,详解路由跟踪命令(tracert)
  15. Ubuntu系统下python编程入门
  16. SecureCRT快捷键大全
  17. docker入门小结
  18. 跨界智能手表:比亚迪向左,小鹏向右
  19. matlab 非线性拟合残差,求大神帮助一下关于matlab非线性拟合的问题
  20. 单片机关于推挽输出和开漏输出

热门文章

  1. java中函数的应用。
  2. 观察者(observer)模式(二) —— 实现线程安全的监听器
  3. 松鼠Ai辅助公校教育,开启智慧教育3.0
  4. 外包公司与小公司你选哪个?
  5. shui0418笔记
  6. linux 根目录/与家目录~
  7. JS padStart()方法和padEnd()方法(ES6新增方法)
  8. Java知识大全 - 十二、Java和大数据
  9. Java JCEF集成Chromium
  10. 一个身居中国的法国程序员谈Python与PHP