#P15. L2-迷宫
L2-迷宫
题目描述
给定一个 n × m 的二维数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走,1 表示不可通过。
最初,有一个人位于左上角 (1,1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。
请问,该人从左上角移动至右下角 (n,m) 处,至少需要移动多少次。若无法走到终点,则输出-1。
输入描述
第一行一个正整数 T ( 1 <= T <= 103 ) 表示数据组数。
每组测试数据描述如下:
第一行两个正整数 n , m ( 1 <= n × m <= 106 ), n , m 表示迷宫的长和宽。
接下来 n 行,每行有 m 个字符 si ( si 当且仅当只会是 0 和 1 )
确保起点 ( 1 , 1 ) 处一定为0 , n × m 不超过 106 。
输出描述
若能走到迷宫终点,输出移动到终点的最少步数;若走不到终点,则输出 -1。
样例
1
5 5
0 1 0 0 0
0 1 0 1 0
0 0 0 0 0
0 1 1 1 0
0 0 0 1 0
8
解释
用x表示走过的道路,正确的行走路径为:
x 1 0 0 0
x 1 0 1 0
x x x x x
0 1 1 1 x
0 0 0 1 x
提示
每一步的可选择方向:
x 1 0 0 0 x 1 0 0 0 x 1 0 0 0 x 1 0 0 0
0 1 0 1 0 x 1 0 1 0 x 1 0 1 0 x 1 0 1 0
0 0 0 0 0 -> 0 0 0 0 0 -> x 0 0 0 0 -> x x 0 0 0 ->
0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 x 1 1 1 0
0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0
x 1 0 0 0 x 1 0 0 0 x 1 0 0 0 x 1 0 0 0 x 1 0 0 x
x 1 0 1 0 x 1 0 1 0 x 1 0 1 0 x 1 0 1 x x 1 0 1 x
x x x 0 0 -> x x x x 0 -> x x x x x -> x x x x x -> x x x x x
x 1 1 1 0 x 1 1 1 0 x 1 1 1 0 x 1 1 1 x x 1 1 1 x
x 0 0 1 0 x x 0 1 0 x x x 1 0 x x x 1 0 x x x 1 x
限制范围
每个测试样例限制为1s, 248Mb。
Related
In following contests: