牛可乐有一个 H 行 M 列的迷宫,如果 S_i,j 是'#',代表第 i 行第 j 列的方格为墙壁,如果 S_i,j 是'.',代表第 i 行第 j 列的方格为可走方格。 每一步移动在一个可走方格,可以水平的或者垂直的移动到相邻的一个可走方格中。 但是不能走出迷宫,不能走到一个墙壁方格,也不能对角线方向移动。 你可以选择任意一个起点方格和终点方格(这两个方格必须为可走方格,且可以相互到达)。 牛可乐将从你选择的起点方格用最小的步数移动到终点方格。 本题需要你最优的选择起点方格和终点方格后让牛可乐必须要移动的步数尽可能大,你需要计算这个步数的最大值。
第一行一个整数 H,W(1 ≤ H,W ≤ 60) 接下来 n 行,每行 m 个字符 代表迷宫 S S 中至少包含2个字符‘.’
一行一个整数代表答案
3 3 ... .#. ...
4
5 5 ...#. ...#. .#... #.... .#..#
8
5 5 #..#. ...#. ..... #.#.. ....#
8
考点:广度优先搜索(BFS)
限制 1 秒 / 256MB | 标准输入输出
参考方向:广度优先搜索(BFS)
按层扩散搜索,无权图上第一次到达即最短路。
思路框架(广度优先搜索(BFS) 通法 · 非本题专属)
实现要点:标记访问必须在入队时做,不能在出队时做,否则会重复入队甚至超时。
复杂度:时间 O(V+E) | 空间 O(V)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1
3 3 / ... / .#. / ...4样例 2
5 5 / ...#. / ...#. / .#... / #.... / .#..#8解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:贝壳找房2023届校招算法卷1。