Problem7433--迷宫 2

7433: 迷宫 2

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 256 MiB

Description

这是一个关于二维格子状迷宫的题目。
迷宫的大小为 N*M,左上角格子座标为 (1,1)、右上角格子座标为 (1,M)、左下角格子座标为 (N,1)、右下角格子座标为 (N,M)。
每一格都用 -1 到 $10^9$ 之间的整数表示,意义分别为:-1 为墙壁,0 为走道,而 1 到 $10^9$ 之间的正整数代表特殊的走道。
蜥蜴最初位于迷宫的座标 (1,1) 的格子,每一步蜥蜴只能往上、下、左、右、左上、右上、左下、右下八个方向之一前进一格,并且,他也不能走出迷宫边界。
蜥蜴的目的地是走到迷宫的右下角格子,也就是座标位置 (N,M)。
我们想要动一些手脚,使得蜥蜴没有办法从 (1,1) 出发并抵达 (N,M)。我们学会了一个邪恶的法术,这个法术可以把特殊的走道变成墙壁,施法一次的代价为表示该特殊走道的正整数。
假设,我们可以在蜥蜴出发之前不限次数的使用这个邪恶的法术,所花的总代价即为每次施法代价的总和,蜥蜴出发之后就不能再使用这个法术了,请问让蜥蜴没办法达到终点所必须花费的最小总代价是多少呢?
注意,0 所代表的走道是无法变为墙壁的。

Input

输入的第一行有三个正整数 Q,N,M。
代表接下来有 Q 组数据,这 Q 组数据都是 N*M 的迷宫。
接下来每组数据各 N 行,代表一个迷宫,每行各 M 个整数,第 i 行中的第 j 个整数代表迷宫座标 (i,j) 的格子。

Output

每一组数据输出一行,如果无论如何蜥蜴都能到达终点,请在这一行中输出 -1,否则请在这一行中输出一个代表答案的整数。

Constraints

$1 \leq Q \leq 5*10^3$
$1 \leq Q*N*M \leq 2.5*10^5$
$1 \leq N,M \leq 500$
代表迷宫格子的数字为介于 -1 和 $10^9$ 间的整数,包含 -1 和 $10^9$。
每个迷宫中,代表座标 (1,1) 和 (N,M) 的格子的数字一定是 0

Sample 1 Input

3 3 3
0 2 2
3 2 3
2 2 0
0 1 2
-1 1 -1
2 1 0
0 1 2
0 0 0
2 1 0

Sample 1 Output

6
1
-1

HINT

题目来源:牛客网

Source/Category

基础算法 4.100.BFS