HX1261K. 迷宫中最短圈

提交3 通过3
通过率100%
时间限制2000ms
内存限制256MiB

题目描述

题目描述

给定一个 nn 行 mm 列的迷宫。字符“#”表示墙壁,字符“.”表示可以行走的格子,字符“S”表示起点。

你每次可以从当前格子移动到上下左右相邻的一个非墙壁格子。现在需要从起点“S”出发,沿着一条环路最终回到“S”。除了起点作为首尾位置外,同一个格子不能在环路中重复出现。

请计算经过边数最少的环路长度。如果不存在这样的环路,输出 −1-1。

输入格式

第一行包含两个整数 n,mn,m。

接下来 nn 行,每行包含 mm 个字符,描述迷宫。地图中恰好有一个字符“S”。

输出格式

输出经过起点的最短环路长度。如果不存在环路,输出 −1-1。

4 4
....
#.#.
.S..
.##.
8
8 5
....#
....#
.....
.....
.....
.##..
..S.#
.....
4
11 4
.#..
..S.
....
#...
....
.#..
...#
#...
..#.
##..
....
4

数据范围

1≤n,m≤5001\le n,m\le500;地图仅含 #、.、S,且恰好有一个起点。

以上为本站练习评测范围,不作为原比赛范围。