AlgoMooc
← 返回题库

P3706. 跳马问题

困难通过率 56% · 提交 339 · 通过 190
BFS图论矩阵模拟

小慕有一个 m 行 n 列的棋盘。他输入了棋盘上的数据。棋盘上每个格子要么是数字,要么是字符“.”。数字表示该格子上有一匹马,数字的值表示这匹马最多能移动的步数;字符“.”表示该格子是空的。 例如,如果棋盘上某个位置的数字是 k,表示该马每次移动时,可以走 1 到 k 步中的任意一个步数。 棋盘上马的移动规则类似于中国象棋中的马:先沿水平或垂直方向移动一格,再沿对角线方向移动一格。 马可以移动到同一个格子,同一个格子上可以同时有多匹马。 小慕想知道:是否可以将棋盘上所有的马都移动到同一个格子?如果可以,输出移动所需的最小总步数;如果不可以,输出 0。

提示:带虚线的词点一下有通俗解释。

输入描述

输入m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。

输出描述

能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。

示例

示例 1

输入

3 5
4 7 . 4 8
4 7 4 4 .
7 . . . .

输出

17

示例 2

输入

3 2
. .
2 .
. .

输出

0

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解(训练营专属)

登录后查看题目图解

题目图解为训练营学员专属内容,请先登录。

微信扫码登录还不是训练营学员?了解训练营 →
写完代码点「提交」,将对全部测试用例判题。