SZ#G6BFS20. 【GESP强化 六级】平方跳棋

提交1 通过1
通过率100%
时间限制2000ms
内存限制256MiB
    ID: 11505 传统题 2000ms 256MiB 尝试: 1 已通过: 1 难度: 普及- 上传者: 标签>GESPGESP强化C++c++编程题广度优先搜索转移预处理GESP6级2星

题目描述

珅泽教育的刘老师正在准备一项寻路实践,他请小珅完成下面的任务。

有一块 N×NN\times N 棋盘。棋子从左上角 (1,1)(1,1) 出发。一次移动可以从 (i,j)(i,j) 跳到 (k,l)(k,l),但必须满足 (ik)2+(jl)2=M(i-k)^2+(j-l)^2=M,并且落点仍在棋盘内。

请对棋盘每个格子输出从起点到达它的最少移动次数;无法到达输出 1-1

输入格式

输入两个整数 N,M。

输出格式

输出 N 行,每行 N 个最短移动次数。

2 1
0 1 
1 2
3 8
0 -1 -1 
-1 -1 -1 
-1 -1 1
4 15
0 -1 -1 -1 
-1 -1 -1 -1 
-1 -1 -1 -1 
-1 -1 -1 -1

数据范围与约定

  • 1N4001 \le N \le 400
  • 1M1061 \le M \le 10^6