A7526 | [ABC151D] Maze Master
时间限制1s
内存限制256MB
通过 / 提交0/0
题目描述
高桥君有一个由 $H$ 行 $W$ 列组成的 $H \times W$ 格子的迷宫。
第 $i$ 行第 $j$ 列的格子 $(i,j)$,当 $S_{ij}$ 为
从道路格子可以移动到上下左右相邻的道路格子。
不能移动到迷宫外部、墙壁格子,也不能斜向移动。
高桥君可以自由选择一个道路格子作为起点和终点,然后把迷宫交给青木君。
青木君会以最少的移动次数从起点移动到终点。
请问,高桥君如何选择起点和终点,使得青木君的最小移动次数最大?输出这个最大值。
第 $i$ 行第 $j$ 列的格子 $(i,j)$,当 $S_{ij}$ 为
# 时表示墙壁,为 . 时表示道路。从道路格子可以移动到上下左右相邻的道路格子。
不能移动到迷宫外部、墙壁格子,也不能斜向移动。
高桥君可以自由选择一个道路格子作为起点和终点,然后把迷宫交给青木君。
青木君会以最少的移动次数从起点移动到终点。
请问,高桥君如何选择起点和终点,使得青木君的最小移动次数最大?输出这个最大值。
输入格式
输入从标准输入按以下格式给出。
> $H$ $W$
> $S_{11} \ldots S_{1W}$
> $\vdots$
> $S_{H1} \ldots S_{HW}$
> $H$ $W$
> $S_{11} \ldots S_{1W}$
> $\vdots$
> $S_{H1} \ldots S_{HW}$
输出格式
输出青木君的最小移动次数的最大值。
输入输出样例
输入 #1
3 3 ... ... ...
输出 #1
4
输入 #2
3 5 ...#. .#.#. .#...
输出 #2
10
## 限制条件
- $1 \leq H, W \leq 20$
- $S_{ij}$ 只包含
- $S$ 至少包含两个
- 任意两个道路格子之间都可以通过 $0$ 次或多次移动到达
## 样例解释 1
如果高桥君选择左上角格子为起点,右下角格子为终点,青木君的移动次数为 $4$。
## 样例解释 2
如果高桥君选择左下角格子为起点,右上角格子为终点,青木君的移动次数为 $10$。
- $1 \leq H, W \leq 20$
- $S_{ij}$ 只包含
. 或 #- $S$ 至少包含两个
.(即至少有两个道路格子)- 任意两个道路格子之间都可以通过 $0$ 次或多次移动到达
## 样例解释 1
如果高桥君选择左上角格子为起点,右下角格子为终点,青木君的移动次数为 $4$。
## 样例解释 2
如果高桥君选择左下角格子为起点,右上角格子为终点,青木君的移动次数为 $10$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?