U598706 棋子跳跃
题目背景
在一个池塘中,有 $n \times n$ 个荷叶排列成网格状,行和列从 1 到 $n$ 编号。一只青蛙初始位于左上角的荷叶 `(1, 1)`。青蛙可以进行一种特殊的跳跃:每次跳跃时,它必须跳到另一个荷叶上,且跳跃的欧几里得距离恰好为 $\sqrt{K}$(其中 $K$ 是一个给定的正整数)。青蛙不能跳出网格边界,也不能停留在原地(即每次跳跃必须移动到不同的荷叶)。
题目描述
给定网格大小 $n$ 和距离参数 $K$,你的任务是确定青蛙是否能从起始位置 `(1, 1)` 到达每个荷叶 `(i, j)`($1 \leq i, j \leq n$)。
- 如果青蛙无法到达 `(i, j)`,则输出 `-1`。
- 如果可以到达,则输出到达 `(i, j)` 的最少跳跃次数(起始位置的操作次数为 0)。

输入格式
- 输入包含两个正整数 $n$ 和 $K$($1 \leq n \leq 400$, $1 \leq K \leq 10^6$),分别表示网格大小和距离参数。
- 网格位置从 `(1, 1)` 到 `(n, n)`。
输出格式
- 输出一个 $n \times n$ 的矩阵,其中第 $i$ 行第 $j$ 列的元素表示位置 `(i, j)` 的答案:
- 如果不可达,输出 `-1`。
- 如果可达,输出一个非负整数,表示最少跳跃次数。
- 起始位置 `(1, 1)` 的输出应为 0(因为不需要任何操作)。
说明/提示
#### 数据范围
- $ 1\ \le\ n\ \le\ 400 $
- $ 1\ \le\ K\ \le\ 10^6 $
- 输入全为整数