总时间限制:

1000ms

内存限制:

65536kB

描述

有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。

输入

第一行一个数字n,n不超过100,表示有n*n的宿舍房间。
接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。
接下来的一行是一个整数m,m不超过100.

输出

输出第m天,得流感的人数

样例输入

5

....#

.#.@.

.#@..

#....

.....

4

样例输出

16

代码:

#include

using namespace std;

const int INF=101;

#include

int jz[INF][INF];

int tian[INF],d[INF*INF][2],head=0,tail=0;

char p[INF];

int xx[]={0,0,1,-1},n,m;

int yy[]={1,-1,0,0};

void input();

void BFS();

int main()

{

input();

BFS();

int sum=0;

for(int i=1;i<=m;++i)

sum+=tian[i];

printf("%d\n",sum);

return 0;

}

void input()

{

scanf("%d",&n);

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

{

scanf("%s",p+1);//使用这个语句可以克服char变量读入空格与换行符的问题,p+1,表示从p[1]开始存元素

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

{

if(p[j]=='#')

jz[i][j]=1;

if(p[j]=='@')

{

jz[i][j]=-1;

d[++tail][0]=i;

d[tail][1]=j;

tian[1]++;

}

}

}

scanf("%d",&m);

}

void BFS()

{

int i=1;head=0;

int t=tail;

while(i

{

i++;

while(head

{

++head;

for(int j=0;j<4;++j)

{

int x1=d[head][0]+xx[j],y1=d[head][1]+yy[j];

if(x1>=1&&y1>=1&&x1<=n&&y1<=n&&jz[x1][y1]==0)

{

tian[i]++;

jz[x1][y1]=-1;

d[++tail][0]=x1;

d[tail][1]=y1;

}

}

}

t=tail;

}

}

转载于:https://www.cnblogs.com/csgc0131123/p/5290430.html

41. 流感传染(宽搜)相关推荐

  1. 信息学奥赛一本通 1191:流感传染 | OpenJudge NOI 2.3 6262:流感传染

    [题目链接] ybt 1191:流感传染 OpenJudge NOI 2.3 6262:流感传染 [题目考点] 1. 二维数组 2. 队列 [解题思路] 用一个字符型二维数组存储各个房间的情况. 1. ...

  2. NOI openjudge 6043:哆啦A梦的时光机(双向宽搜)

    在线评测: http://noi.openjudge.cn/ch0407/6043/ 整体思路: 这种题随便宽搜一下就好了,没啥思路可讲,,,, 失误之处: 1.开始脑子里想的是一面扩展一层,这样子可 ...

  3. Darker and Darker(宽搜)

    Darker and Darker(宽搜) 题目描述 You are given a grid of squares with H horizontal rows and W vertical col ...

  4. c++ 宽搜(倒水)

    题目描述 有一个很大的水缸和二个容量分别为X和Y的水壶,按照以下的规则倒水,问最少经几次倒水后,可得到Z升水 规则1:水缸向水壶1倒水,将水壶1装满: 规则2:水缸向水壶2倒水,将水壶2装满: 规则3 ...

  5. CSP认证201403-4 无线网络[C++题解]:宽搜、bfs最短路、图论

    文章目录 题目解答 题目链接 题目解答 来源:acwing 分析:BFS求最短路. 使用pair来存点的坐标,使用邻接表来存图. 宽搜模板套进来. 提供一组测试用例:注意可能爆int,所以需要用lon ...

  6. 抓住那头牛(宽搜bfs)

    Description 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N,牛位于点K. 农夫有两种移动方式: 1.从X移动到X−1或X+1,每次移动花费一分钟. 2.从X移动到 ...

  7. 用双向宽搜来提高搜索效率

    在信息竞赛中,常常会遇到一些用广度优先搜索才能实现的题目,而这类题目很大一部分都可以用双向宽搜来提高搜索速度, 这类题目的共同点是: 1.   起始状态和目标状态都很明确: 2.  搜索一条从起始状态 ...

  8. 一本通:1191流感传染

    一本通:流感传染 [题目描述] 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻 ...

  9. 搜索与图论1—深搜、宽搜、拓扑排序

    本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码. 文章目录 一.深度优先搜索 1 排列数字 2 N皇后 二. ...

  10. 675 为高尔夫比赛砍树(宽搜)

    1. 问题描述: 你被请来给一个要举办高尔夫比赛的树林砍树.树林由一个 m x n 的矩阵表示, 在这个矩阵中: 0 表示障碍,无法触碰 1 表示地面,可以行走 比 1 大的数表示有树的单元格,可以行 ...

最新文章

  1. java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络
  2. python发声-python写报警程序中的声音实现winsound
  3. [置顶] 分步实现具有分页功能的自定义DataList控件【附源代码】
  4. 虚拟机屏幕界面自适应调整
  5. step1 . day1:工具准备
  6. netsh interface portproxy 转发不生效_SecureCRT远程端口转发不生效的解决方法
  7. WPA3 标准被曝严重漏洞,WiFi 密码可遭窃取?
  8. 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
  9. 【细胞分割】基于形态学算法实现红细胞计数matlab源码含 GUI
  10. python中 s是什么意思_python中字符串 s[ : -1]是什么意思?
  11. 《崩坏3》评测:游戏设计中整体性和利用率分析(上)
  12. Uncaught Error: A <Route> is only ever to be used as the child of <Routes> element, never rendered d
  13. python开发app教程_知到APP_数据库应用与开发_答案教程
  14. 手机的imei号的获取
  15. 前端接收list的情况 (批量添加)出现这个错说明不是传参错误,是解析错误
  16. 计算机用户名如何修改,如何修改电脑用户名
  17. CAD图纸如何批量转换JPG格式?
  18. Java 变量作用域、构造方法官方教程
  19. 微服务之API网关:Kong:概要与安装
  20. 群星Stellaris for Mac(太空策略游戏)

热门文章

  1. perl Makefile.PL;make;make install 安装时报错
  2. Bean在Spring和SpringMVC中无所不在
  3. 答应我,别再靠!= null走天下了可以吗?
  4. 代码很烂,所以离职?
  5. 从0开始学习 GitHub 系列之「向GitHub 提交代码」
  6. android c 内存泄露,内存泄漏弄个明白
  7. python模拟浏览器访问百度_selenium与python自动化测试模拟登录百度
  8. windows操作系统_windows下用深度系统安装器安装深度操作系统实现双系统分别运行...
  9. LeetCode 893 Groups of Special-Equivalent Strings 解题报告
  10. SQL-Server2008数据库异常报错