Advertisement

NOI2.3.6262流感传染解答(C++)

阅读量:

题目

总时间限制: 1000ms 内存限制: 65536kB
描述
有一群易感人群居住在一个网格状的宿舍区域中,该宿舍区为一个n*n的矩阵,每个网格点代表一个房间,房间内可能有人居住,也可能处于空置状态。在第一天时,部分房间内的人员感染了流感,之后每天,已感染流感的人员会将其相邻的邻居传染上流感(已患病者不会再次被传染),而空置房间不具备传染能力。请计算并输出第m天时感染流感的人数。

输入
第一行包含一个数字n,n不超过100,表示宿舍区域由n*n个房间组成。
接下来的n行中,每行包含n个字符:’.’表示第一天该房间内居住的是健康人员,’#’表示该房间为空置状态,’@’表示第一天该房间内居住的是已感染流感的人员。
随后的一行给出一个整数m,m不超过100。

输出
输出第m天时感染流感的人数

示例输入
5
…#
.#.@.
.#@…
#…

4

示例输出
16

思路

在本题中,存在一种既直接又有效的处理方式,即逐个进行检查,若发现某人已被流感感染,则将其周围所有居住人员标记为被感染状态(用@表示)。然而,这种方法在实际操作过程中可能会引发一些令人困扰的情况,例如如下情形:

@ . .
. . .
. . .

传染一次是这样:

|

全部评论 (0)

还没有任何评论哟~