题面解释:
在一个M∗N的地图中,包含墙体、空地、已感染和未感染的人(分别戴或不戴口罩)。病毒的传播模型需要根据感染者的危险系数(戴口罩与否影响系数大小)来计算传播轨迹,危险系数会随距离衰减,且被墙体阻隔。未感染的人若所处位置的危险系数大于等于其感染阈值,则会在第二天被感染,并影响周围区域。输入包括地图尺寸M和N,以及戴口罩和不戴口罩的危险系数和感染阈值,接着是地图数据。输出为每个格子的状态:如果是空地或墙体,输出−1;如果初始已感染,输出0;如果被感染,输出被感染的天数;否则输出−1。
多轮 多源bfs
我们不难发现,整个过程就是,每天会有若干个新增的感染人数。每次对新增的感染人数,我们更新危险系数矩阵。然后对于更新后的危险系数矩阵,我们再检查新增感染,如此往复。
所以思路是:
开通会员即可查看完整视频题解: 1.题目讲解 2.思路分析 3.逐行代码手写