#P2004. 二维迷宫最短路
二维迷宫最短路
题目描述
卢卡斯被困在了一个二维迷宫中。
这个二维迷宫可以看成一个 行 列的网格。我们用 表示迷宫中第 行第 列的那个格子。
格子包含以下两种类型:
.:表示可以通行的格子;#:表示不能通行的墙壁。
卢卡斯初始时在迷宫的左上角 位置,它需要移动到迷宫的右下角 位置,那里是迷宫的出口。
每次移动,卢卡斯可以从当前格子移动到上、下、左、右相邻的格子,但是不能移动到不可通行的墙壁,也不能移动到迷宫外。
每移动一格的代价是 。
求:卢卡斯从迷宫的左上角移动到迷宫的右下角的最小总代价。
输入格式
第一行,两个整数 和 ,以空格分隔,表示迷宫的行和列。
接下来 行,每行包含一个长度为 的字符串,表示这个二维迷宫。
输出格式
如果卢卡斯不存在任何可行的方案,输出一行 。
否则,输出一个整数,表示卢卡斯从迷宫的左上角移动到迷宫的右下角的最小总代价。
样例
2 3
..#
#..
3
5 5
.....
.#.#.
..#..
.##.#
..#..
10
4 3
.##
...
..#
.#.
-1
说明/提示
数据规模与约定
- 对于 的数据,
- 对于 的数据,
- 对于 的数据,,起点 是可通行的格子。