链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
现有一个大小为n×mn\times mn×m的二维矩阵,每个元素si,js_{i,j}si,j可能是字符'0'、'1'。
阿宁一开始站在(1,1)(1,1)(1,1),目标走到(n,m)(n,m)(n,m)。
假设当前在(x,y)(x,y)(x,y),一个相邻的位置(x′,y′)(x',y')(x′,y′) ,上下左右 相邻。可以进行以下其中一个行为,花费一个单位时间:
1. 如果sx,ys_{x,y}sx,y是'0',sx′,y′s_{x',y'}sx′,y′是'1',可以从(x,y)(x,y)(x,y)走到(x′,y′)(x',y')(x′,y′)。
2. 如果sx,ys_{x,y}sx,y是'1',sx′,y′s_{x',y'}sx′,y′是'0',可以从(x,y)(x,y)(x,y)走到(x′,y′)(x',y')(x′,y′)。
3. 将sx′,y′s_{x',y'}sx′,y′变成'1'。
4. 将sx′,y′s_{x',y'}sx′,y′变成'0'。
问阿宁从(1,1)(1,1)(1,1)走到(n,m)(n,m)(n,m)需要最少多少单位时间?
输入描述:
第一行输入两个正整数n,mn,mn,m。 接下来输入nnn行,每行mmm个字符,字符仅包含'0'、'1'。 1≤n,m≤10^3

该文提供了解决D-矩阵问题的两种方法,通过构建分层图并使用BFS(广度优先搜索)策略,找到从(1,1)到(n,m)的最短路径。其中涉及了优先队列处理不同距离的情况,以及状态转移的思想。代码示例展示了如何实现这一过程。
最低0.47元/天 解锁文章
7793

被折叠的 条评论
为什么被折叠?



