#JX2025300992. 迷宫 (maze)

迷宫 (maze)

题目描述

现在有一个由 HHWW 列组成的 H×WH \times W 格子的迷宫。

ii 行第 jj 列的格子 (i,j)(i,j),当 SijS_{ij}# 时表示墙壁,为 . 时表示道路。

从道路格子可以移动到上下左右相邻的道路格子。

不能移动到迷宫外部、墙壁格子,也不能斜向移动。

你可以自由选择一个道路格子作为起点和终点,然后把迷宫交给小z。

小z会以最少的移动次数从起点移动到终点。

请问,你如何选择起点和终点,使得小z的最小移动次数最大?输出这个最大值。

输入格式(maze.in)

输入从标准输入按以下格式给出。

HH WW

S11S1WS_{11} \ldots S_{1W}

\vdots

SH1SHWS_{H1} \ldots S_{HW}

输出格式(maze.out)

输出小z的最小移动次数的最大值。

3 3
...
...
...
4
3 5
...#.
.#.#.
.#...
10

提示

限制条件

  • 1H,W201 \leq H, W \leq 20
  • SijS_{ij} 只包含 .#
  • SS 至少包含两个 .(即至少有两个道路格子)
  • 任意两个道路格子之间都可以通过 00 次或多次移动到达

样例解释 1

如果选择左上角格子为起点,右下角格子为终点,小z的移动次数为 44

样例解释 2

如果选择左下角格子为起点,右上角格子为终点,小z的移动次数为 1010