【问题描述】
       有一批易感人群住在网格状的宿舍区内,宿舍区为nn的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。
【输入】
       第一行一个数字n,n不超过100,表示有n
n的宿舍房间。
       接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人,’#’表示该房间空着,’@’表示第一天该房间住着得流感的人。
       接下来的一行是一个整数m,m不超过100。
【输出】
       输出第m天,得流感的人数。
【输入样例】
       5
       …#
       .#.@.
       .#@…
       #…
       …
       4
【输出样例】
       16
【参考程序】

#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;char a[101][101];           // a[i][j]记录房间(i,j)的状态
bool b[101][101];           // b[i][j]记录房间(i,j)是否住着得流感的人 int main() {int m, n, ans=0;memset(b, false, sizeof(b));      // 初始化,false表示未得流感 cin >> n;for (int i=1; i<=n; i++) {for (int j=1; j<=n; j++) {cin >> a[i][j];                // 初始化房间第一天的状态 }} cin >> m;               for (int k=2; k<=m; k++) {           // 模拟m天for (int i=1; i<=n; i++) {for (int j=1; j<=n; j++) {if (a[i][j] == '@') {         // 判断房间(i,j)是否有病人'@',每天传染邻居(上下左右) if (a[i-1][j] == '.') {       // 判断上邻居(i-1,j)是否住人'.' b[i-1][j] = true; } if (a[i][j-1] == '.') {       // 判断左邻居(i,j-1)是否住人'.' b[i][j-1] = true; } if (a[i+1][j] == '.') {      // 判断下邻居(i+1,j)是否住人'.' b[i+1][j] = true;   } if (a[i][j+1] == '.') {      // 判断右邻居(i,j+1)是否住人'.' b[i][j+1] = true;   }} } // end for(j)} // end for(i)// 必须之后再更新,否则这一天刚被传染的人也会传染别人,违背了题意for (int i=1; i<=n; i++) {for (int j=1; j<=n; j++) {if (b[i][j] == true) {a[i][j] = '@';               // 更新传染的新的病人 }}} } // end for(k)for (int i=1; i<=n; i++) {for (int j=1; j<=n; j++) {if (a[i][j] == '@') {ans++;                            // 搜索累加得流感的人数 }}}cout << ans << endl;return 0;
}

【1191】流感传染相关推荐

  1. 一本通:1191流感传染

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

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

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

  3. 信息学奥赛一本通|1191:流感传染

    1191:流感传染 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 20081 通过数: 10845 [题目描述] 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格 ...

  4. 【信奥赛一本通】1191:流感传染(详细代码)

    [c++解决]1191:流感传染(详细代码)有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感,以后每天,得流感 ...

  5. 流感传染 C++ 递推

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

  6. 一本通题解——1191:流感传染

    题目相关 题目链接 一本通 OJ,http://ybt.ssoier.cn:8088/problem_show.php?pid=1191. 题目描述 有一批易感人群住在网格状的宿舍区内,宿舍区为 n* ...

  7. 1191:6262:流感传染

    总时间限制: 1000ms 内存限制: 65536kB 描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感 ...

  8. 1191:流感传染(递推)

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

  9. 信息学奥赛一本通:1191:流感传染

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

最新文章

  1. 普适方案|资管新规落地,资管领域存量市场竞争激烈。专家:得转型(附产品推广)
  2. 转载: Qt 学习之路 2归档
  3. linux pam 解锁_linux中pam模块
  4. python学多久可以做项目-怎么自学python,大概要多久?
  5. ubuntu 安装 mongodb并修改仓库路径
  6. jQuery ui widget和jQuery plugin的实现原理简单比较
  7. C/C++底层实现指定磁盘只读
  8. VS2015卸载不完全与安装问题
  9. K近邻算法,Matlab实现
  10. 【Numpy入门实例:图像的手绘效果】
  11. 图示代码,轻松解决IV值计算问题(python)
  12. 如何删除oracle备份集,RMAN中删除OBSOLETE备份集问题
  13. 个人支付接口现状分析——总有一款适合你
  14. 交通流量预测数据集解读
  15. jar 坐标系转换工具_MODIS数据处理工具HEG安装教程
  16. Vs2015智能提示英文的处理方案。
  17. 用python画篮球场_如何使用 Python 创建一个 NBA 得分图
  18. Linux虚拟机CentOS7挂机问题
  19. cpp整理学习笔记 文件I/O:随机存取fseek()和ftell()
  20. 首战告捷!网易有道斩获首届NLPCC中文语法错误修正比赛冠军

热门文章

  1. 小米诚意之作:骁龙8Gen1+IMX766+OIS+120Hz,已跌至两千元档
  2. WY C语言入门(5)
  3. AE使用中的常见错误01
  4. iOS WebView白屏问题解决方案
  5. visio 深信服设备_深信服数据安全建设新思路,让数据泄密可视可控
  6. CRM系统如何降低销售离职带来的损失?
  7. VIDEO 黑边去除(是点击VIDEO出现的黑边)
  8. 计算机上的网络适配器,电脑的网络适配器是什么意思?
  9. 华为HCIE专家认证相关简介
  10. 软件加密系统Themida应用程序保护指南(十):高级选项