一. 题目
输入 m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。棋盘中存在数字和".“两种字符,如果是数字表示该位置是一匹马,如果是”."表示该位置为空的,棋盘内的数字表示为该马能走的最大步数。
例如棋盘内某个位置一个数字为 k,表示该马只能移动 1~k 步的距离。
棋盘内的马移动类似于中国象棋中的马移动,先在水平或者垂直方向上移动一格,然后再将其移动到对角线位置。
棋盘内的马可以移动到同一个位置,同一个位置可以有多匹马。
请问能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。
输入描述
输入m 和 n 两个数,m 和 n 表示一个 m*n 的棋盘。输入棋盘内的数据。
输出描述
能否将棋盘上所有的马移动到同一个位置,若可以请输入移动的最小步数。若不可以输出 0。
示例1:
输入
3 2
. .
2 .
. .
输出
0
示例2:
输入
3 5
4 7 . 4 8
4 7 4 4 .
7 . . . .
输出
17
二.解题思路
这道题的解题思路如下:
-
解析输入:
- 读取棋盘的尺寸(m, n)。
- 读取棋盘数据,其中包括’.'和表示马最大移动步数的数字。
-
存储马的信息:
- 提取并存储关于马的信息:它们的位置(坐标