#1584. P2197 - 骑士与棋盘 - JOYSKID

P2197 - 骑士与棋盘 - JOYSKID

题目描述

盖亚最近开始学习如何玩国际象棋。他发现,国际象棋中的马被称为骑士(knight),而他从小到大的梦想就是成为一个骑士。因此在玩国际象棋时,他总是会将自己代入骑士中。 今天盖亚又在玩国际象棋。他在一个 nmn * m 的棋盘的(x,y)(x, y)的位置上放了一个骑士,他想知道这个骑士可以到达其他所有位置所需的最小步数是多少。 骑士可以往8的方向以走“日”的方法移动,即如果当前位置为 (i,j)(i, j) ,那么下一步可以移动到 $(i-1, j -2), (i-1, j+2), (i+1, j-2), (i+1,j+2),(i-2,j+1),(i-2,j-1),(i+2,j+1),(i+2,j-1)$ 共8个位置。 当然在走的过程中,不能走出棋盘。如果无法到达某个点,则用1-1表示。

输入格式

第一行输入4个整数 $n, m,x, y (1\leq n, m\leq 500, 1\leq x \leq n, 1\leq y \leq m)$。

输出格式

输出一个 nmn *m 的矩阵,第 ii 行第 jj 列表示从 (x,y)(x, y) 走到 (i,j)(i, j) 需要的步数。

4 4 1 1 
0 3 2 5

3 4 1 2 

2 1 4 3 

5 2 3 2