首页 / 题库

P14068 - 马走日

算法入门
通过次数0 提交次数0 内存限制 128MB 时间限制1秒

描述

在国际象棋中,马的移动方式与中国象棋中的马类似,都是走“日”字。但国际象棋中的马没有“蹩腿”的限制,因此它可以向周围 8 个方向任意跳动(只要不超出棋盘边界)。具体来说,马每步可以从一个格子跳到与之水平距离为 1、垂直距离为 2,或者水平距离为 2、垂直距离为 1 的格子上。

![](/uploads/20251127/17642349041827.png)

现在给定一个 $ n $ 行 $ m$ 列的棋盘,以及马的起始位置 $(x, y)$。请你计算马从起始位置出发,到达棋盘上每一个格子所需的最少移动步数。如果某个格子无法到达,则输出 `-1`。

输入

输入仅一行,包含四个整数 $ n, m, x, y $,用空格隔开:

- $ n $:棋盘的行数
- $ m $:棋盘的列数
- $ x $:起始行号$(1 ≤ x ≤ n)$
- $ y $:起始列号$(1 ≤ y ≤ m)$

输出

输出 $ n $ 行,每行包含 $ m $ 个整数,依次表示从起点到该格子(第 $ i $ 行第 $ j $ 列)的最少步数。相邻整数之间用一个空格隔开。如果该格子无法到达,则输出 `-1`。

样例

  • 复制
  • 复制

提示

### 样例说明

棋盘为 $ 3 \times 3 $,起点位于第 3 行第 1 列(即左下角)。马从起点出发,一步可以跳到 (1,2)、(2,3) 等位置,经过 BFS 计算得到各格子的最短步数如输出所示。注意 (2,2) 无法到达,因此输出 `-1`。

## 数据范围与约定

- $ 1 \le n, m \le 1000 $
- $ 1 \le x \le n , 1 \le y \le m $

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36