41. 流感传染(宽搜)
总时间限制:
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. 流感传染(宽搜)相关推荐
- 信息学奥赛一本通 1191:流感传染 | OpenJudge NOI 2.3 6262:流感传染
[题目链接] ybt 1191:流感传染 OpenJudge NOI 2.3 6262:流感传染 [题目考点] 1. 二维数组 2. 队列 [解题思路] 用一个字符型二维数组存储各个房间的情况. 1. ...
- NOI openjudge 6043:哆啦A梦的时光机(双向宽搜)
在线评测: http://noi.openjudge.cn/ch0407/6043/ 整体思路: 这种题随便宽搜一下就好了,没啥思路可讲,,,, 失误之处: 1.开始脑子里想的是一面扩展一层,这样子可 ...
- Darker and Darker(宽搜)
Darker and Darker(宽搜) 题目描述 You are given a grid of squares with H horizontal rows and W vertical col ...
- c++ 宽搜(倒水)
题目描述 有一个很大的水缸和二个容量分别为X和Y的水壶,按照以下的规则倒水,问最少经几次倒水后,可得到Z升水 规则1:水缸向水壶1倒水,将水壶1装满: 规则2:水缸向水壶2倒水,将水壶2装满: 规则3 ...
- CSP认证201403-4 无线网络[C++题解]:宽搜、bfs最短路、图论
文章目录 题目解答 题目链接 题目解答 来源:acwing 分析:BFS求最短路. 使用pair来存点的坐标,使用邻接表来存图. 宽搜模板套进来. 提供一组测试用例:注意可能爆int,所以需要用lon ...
- 抓住那头牛(宽搜bfs)
Description 农夫知道一头牛的位置,想要抓住它.农夫和牛都位于数轴上,农夫起始位于点N,牛位于点K. 农夫有两种移动方式: 1.从X移动到X−1或X+1,每次移动花费一分钟. 2.从X移动到 ...
- 用双向宽搜来提高搜索效率
在信息竞赛中,常常会遇到一些用广度优先搜索才能实现的题目,而这类题目很大一部分都可以用双向宽搜来提高搜索速度, 这类题目的共同点是: 1. 起始状态和目标状态都很明确: 2. 搜索一条从起始状态 ...
- 一本通:1191流感传染
一本通:流感传染 [题目描述] 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻 ...
- 搜索与图论1—深搜、宽搜、拓扑排序
本人的LeetCode账号:魔术师的徒弟,欢迎关注获取每日一题题解,快来一起刷题呀~ 本人Gitee账号:路由器,欢迎关注获取博客内容源码. 文章目录 一.深度优先搜索 1 排列数字 2 N皇后 二. ...
- 675 为高尔夫比赛砍树(宽搜)
1. 问题描述: 你被请来给一个要举办高尔夫比赛的树林砍树.树林由一个 m x n 的矩阵表示, 在这个矩阵中: 0 表示障碍,无法触碰 1 表示地面,可以行走 比 1 大的数表示有树的单元格,可以行 ...
最新文章
- java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络
- python发声-python写报警程序中的声音实现winsound
- [置顶] 分步实现具有分页功能的自定义DataList控件【附源代码】
- 虚拟机屏幕界面自适应调整
- step1 . day1:工具准备
- netsh interface portproxy 转发不生效_SecureCRT远程端口转发不生效的解决方法
- WPA3 标准被曝严重漏洞,WiFi 密码可遭窃取?
- 《Java 核心技术 卷 Ⅱ:高级特性》(原书第8版) 已经上市了
- 【细胞分割】基于形态学算法实现红细胞计数matlab源码含 GUI
- python中 s是什么意思_python中字符串 s[ : -1]是什么意思?
- 《崩坏3》评测:游戏设计中整体性和利用率分析(上)
- Uncaught Error: A <Route> is only ever to be used as the child of <Routes> element, never rendered d
- python开发app教程_知到APP_数据库应用与开发_答案教程
- 手机的imei号的获取
- 前端接收list的情况 (批量添加)出现这个错说明不是传参错误,是解析错误
- 计算机用户名如何修改,如何修改电脑用户名
- CAD图纸如何批量转换JPG格式?
- Java 变量作用域、构造方法官方教程
- 微服务之API网关:Kong:概要与安装
- 群星Stellaris for Mac(太空策略游戏)
热门文章
- perl Makefile.PL;make;make install 安装时报错
- Bean在Spring和SpringMVC中无所不在
- 答应我,别再靠!= null走天下了可以吗?
- 代码很烂,所以离职?
- 从0开始学习 GitHub 系列之「向GitHub 提交代码」
- android c 内存泄露,内存泄漏弄个明白
- python模拟浏览器访问百度_selenium与python自动化测试模拟登录百度
- windows操作系统_windows下用深度系统安装器安装深度操作系统实现双系统分别运行...
- LeetCode 893 Groups of Special-Equivalent Strings 解题报告
- SQL-Server2008数据库异常报错