AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3711. 矩阵扩散

中等通过率 44% · 提交 171 · 通过 75
BFS矩阵模拟

小慕有一个m×n的二维项目网格,每个格子只能取0或1两种状态。其中值为1的格子具有扩散能力,每过1秒,它会将上下左右四个方向上值为0的格子。初始时,所有格子都是0。小慕先将第[i,j]和第[k,l]两个位置上的格子设为1,然后他想知道:整个网格全部变为1,至少需要多少秒。

提示:带虚线的词点一下有通俗解释。

输入描述

输入数据中的前2个数字表示这是一个m×n的矩阵,m和n不会超过1024大小; 中间两个数字表示一个初始扩散点位置为i,j; 最后2个数字表示另一个扩散点位置为k,l。

输出描述

输出矩阵的所有元素变为1所需要秒数。

示例

示例 1

输入

4,4,0,0,3,3

输出

3

说明:输入数据中的前2个数字表示这是一个4*4的矩阵;中间两个数字表示一个初始扩散点位置为0,0;最后2个数字表示另一个扩散点位置为3,3。给出的样例是一个简单模型,初始点在对角线上,达到中间的位置分别为3次迭代,即3秒。所以输出为3。

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
双机位扩散示例:4×4矩阵,初始点(0,0)和(3,3) (0,0) (3,3) 相遇 扩散过程:第1秒扩散到相邻格,第2秒继续,第3秒全部变为1 所需时间 = 3 秒 初始扩散点 相遇点
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「矩阵扩散」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。