NOI2.3.6262流感传染解答(C++)
发布时间
阅读量:
阅读量
题目
总时间限制: 1000ms 内存限制: 65536kB
描述
有一群易感人群居住在一个网格状的宿舍区域中,该宿舍区为一个n*n的矩阵,每个网格点代表一个房间,房间内可能有人居住,也可能处于空置状态。在第一天时,部分房间内的人员感染了流感,之后每天,已感染流感的人员会将其相邻的邻居传染上流感(已患病者不会再次被传染),而空置房间不具备传染能力。请计算并输出第m天时感染流感的人数。
输入
第一行包含一个数字n,n不超过100,表示宿舍区域由n*n个房间组成。
接下来的n行中,每行包含n个字符:’.’表示第一天该房间内居住的是健康人员,’#’表示该房间为空置状态,’@’表示第一天该房间内居住的是已感染流感的人员。
随后的一行给出一个整数m,m不超过100。
输出
输出第m天时感染流感的人数
示例输入
5
…#
.#.@.
.#@…
#…
…
4
示例输出
16
思路
在本题中,存在一种既直接又有效的处理方式,即逐个进行检查,若发现某人已被流感感染,则将其周围所有居住人员标记为被感染状态(用@表示)。然而,这种方法在实际操作过程中可能会引发一些令人困扰的情况,例如如下情形:
| @ | . | . |
|---|---|---|
| . | . | . |
| . | . | . |
传染一次是这样:
|
全部评论 (0)
还没有任何评论哟~
