5-5 大炮打蚊子

5-5 大炮打蚊子   (15分)

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

 O
OXO
 O

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

输入格式:

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

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

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

最后k行,每行包括一发炮弹的整数坐标xy(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

来源: https://pta.patest.cn/pta/test/5028/exam/4/question/75440

  1. #include<stdio.h>
  2. #include<string.h>
  3. using namespace std;
  4. int main()
  5. {
  6. int n,m,a[100][100],sum,i,j,k,p1,p2;
  7. char c[100][100];
  8. scanf("%d %d",&m,&n);
  9. for(i=0;i<m;i++){
  10. scanf("%s",c[i]);
  11. }
  12. for(i=0;i<m;i++){
  13. for(j=0;j<n;j++){
  14. if(c[i][j]==‘0‘){
  15. a[i][j]=0;
  16. }else{
  17. a[i][j]=2;
  18. }
  19. }
  20. }
  21. scanf("%d",&k);
  22. for(i=0;i<k;i++){
  23. sum=0;
  24. scanf("%d %d",&p1,&p2);
  25. //p1=p1+1;
  26. //p2=p2+1;
  27. if(a[p1][p2-1]==2){
  28. a[p1][p2-1]=1;
  29. }else if(a[p1][p2-1]==1){
  30. sum++;
  31. }
  32. if(a[p1][p2+1]==2){
  33. a[p1][p2+1]=1;
  34. }else if(a[p1][p2+1]==1){
  35. sum++;
  36. }
  37. if(a[p1][p2]==2||a[p1][p2]==1){
  38. sum++;
  39. }
  40. if(a[p1-1][p2]==2){
  41. a[p1-1][p2]=1;
  42. }else if(a[p1-1][p2]==1){
  43. sum++;
  44. }
  45. if(a[p1+1][p2]==2){
  46. a[p1+1][p2]=1;
  47. }else if(a[p1+1][p2]==1){
  48. sum++;
  49. }
  50. printf("%d\n",sum);
  51. }
  52. return 0;
  53. }
时间: 2024-10-06 00:37:51

5-5 大炮打蚊子的相关文章

由100盏灯想到的(二)

本系列的第一篇: http://www.cnblogs.com/dhf327/p/4773672.html 100盏灯的问题,上次我们算是基本解决了,不管算法上是否够优化,至少我们已经在可接受的时间得到了答案. 但是最后还留了一道题,亲们,你们是不是已经想出来了? 一,上次的题目 上一篇给出了python求一个正整数的所有的因数的方法,这个方法目前工作正常,求单个正整数的所有因数速度上也没有任何问题. 但是结合上一篇最后的题目,有心的同学一下子就看出问题来了,1到10的12次方,假设求每个数的所

图片滚动按需加载

对于图片缓存加载jquery有很多插件可以使用,一行代码就能搞定,可对于移动端并且在dom操作不多的情况下用jquery未免就有点拿大炮打蚊子的赶脚了,所以自己写了个原生的,有写的的不好的和需要优化的地方希望大家不吝赐教. 首先先获取需要缓存加载图片距浏览器顶部的距离,然后把页面上所有的img的实际地址写到alt上去,src全部用一张默认通用图 function getTop(dom){ var top = dom.offsetTop; var parent = dom; while(paren

应用程序框架实战三十五:服务概述

上一篇介绍了我对几种实体的认识,本篇将介绍几种服务的用法. 预告一下本系列后续计划,本篇之后,准备进入实战演练阶段,先介绍如何快速解决CRUD操作,从如何使用PD数据建模到使用CodeSmith生成代码,先带你感受一下,再回过来介绍框架内部元素,以免你在阅读时昏昏欲睡. 应用服务介绍 对于一个新的设计元素,可以先假定不需要它,等到确实认识到它的作用再引入.那么,应用服务为我们带来了哪些好处呢? 应用服务帮助简化表现层操作 以MVC为例,如果没有应用服务,那么控制器将直接调用仓储,设置查询条件,转

性能测试之-wrk(转)

性能测试之-wrk(转) 转载地址:http://zjumty.iteye.com/blog/2221040 http://www.cnblogs.com/rainy-shurun/p/5867946.html 测试先行是软件系统质量保证的有效手段. 在单元测试方面, 我们有非常成熟的 xUnit 方案. 在集成测试方面, 我们 selenium 等自动化方案. 在性能测试方面也有很多成熟的工具, 比如 LoadRunner, Jmeter 等. 但是很多工具都是给专门的性能测试人员使用的, 功

JavaScript 跨域漫游

前言: 最近在公司做了几个项目都涉及到了iframe,也就是在这些iframe多次嵌套的项目中,我发现之前对iframe的认识还是比较不足的,所以就静下心来,好好整理总结了iframe的相关知识:<Iframe 功能详解>. 在做公司项目的过程中,让我纠结之一的就是iframe的跨域问题,在网上查到的资料,基本都是给个思路,加个DEMO,也没有完整的解决方案.所以这里我结合公司的项目实际需求,从新整理了一下javaScript跨域的相关方法. PS:请转载的童鞋,请注明出处 ... 目录: 一

V 8 nfs+drbd+heartbeat

nfs+drbd+heartbeat,nfs或分布式存储mfs只要有单点都可用此方案解决 在企业实际生产场景中,nfs是中小企业最常用的存储架构解决方案之一,该架构方案部署简单.维护方便,只需通过配inotify+rsync简单而高效的数据同步方式就可实现对nfs存储系统的数据进行异机主从同步及类似MySQL的rw splitting,且多个从(读r)还可通过LVS或haproxy实现LB,既分担大并发读数据的压力又排除了从的单点故障: web server上的存储: 方案一(读写在任意一台we

QQ音乐/酷狗音乐锁屏控制实现原理

我实现的效果 混乱的锁屏控制 Android自4.0版本, 也就是API level 14开始, 加入了锁屏控制的功能, 相关的类是RemoteControlClient, 这个类在API level 21中被标记为deprecated, 被新的类MediaSession所替代. 我们的音乐App中最开始使用的是原生锁屏控制API, 说实话这个API不好用, 遇到了一些小坑, 最要命的是不同品牌的手机, 锁屏界面长的还不一样, 就连我自己都没见过原生4.0的锁屏控制界面是什么样的. 国内的手机厂

服务消息、业务实体以及数据实体

名次解释 服务消息 - 分布式应用中各个服务之间传递的消息,以WCF为例的话就是数据契约. 业务实体 - 业务对象模型.领域模型中和业务相关的实体. 数据实体 - 完全和关系型数据库结构对应的数据实体. 问题 今天有人在MSN上问了我一个问题引发了我的思考,问题大致如下: 最近在学习3.0的一些技术,比如WCF和LINQ,我尝试使用这些技术写一个分布式的新闻系统,系统的构架如下: ※     一个数据访问层,其中包含了一个数据实体(自动生成的).数据访问层使用Linq To SQL进行数据访问操

致初入职场的兄弟姐妹

致初入职场的兄弟姐妹   我很喜欢电影<燃情岁月>中的那句台词--"有些人能够听见自己内心的声音,非常的清楚,他们依循着自己的内心来行事.这些人变得疯狂,或者成为传奇--"(Some people hear their own inner voices with great clearness and they live by what they hear. Such people become crazy, or they become legends. )     这是