#Z6013. 实现最优性剪枝 迷宫

实现最优性剪枝 迷宫

有一个 n×mn\times m 大小的迷宫。其中字符'S'表示起点,字符'T'表示终点,字符'#'表示墙壁,字符'.'表示平地。你需要从'S'出发走到'T',每次只能向上下左右相邻的位置移动,并且不能走出地图,也不能走进墙壁。保证迷宫至少存在一种可行的路径,输出'S'走到'T'的最少步数。

输入格式

第一行输入两个整数 n(1n11),m(1m11)n(1 \le n \le 11), m(1 \le m \le 11),表示迷宫的行和列,两数之间以一个空格分隔。

然后有一个 n×mn \times m 的地图,地图由'.''#''S''T'这四S个部分T组成。'.'表示可以通行的路,'#'表示迷宫的墙,'S'表示起始点,'T'表示终点。T

输出格式

输出一个整数,表示从's'到达'e'的所有方案数。

格式说明

输出时每行末尾的多余空格,不影响答案正确性

输入、输出要求

要求使用「文件输入、输出」的方式解题,输入文件为 maze.in,输出文件为 maze.out

样例输入1

3 4
S##.
....
###T

样例输出1

5

样例输入2

4 4
S.#.
....
..#.
###T

样例输出2

6