#2554. P3167 - 根号M跳跃 - JOYSKID

P3167 - 根号M跳跃 - JOYSKID

题目描述

有一个 NNNN 列的网格。把从上数第 ii 行、从左数第 jj 列的格子记作 (i,j)(i, j)

最初有一个棋子在 (1,1)(1, 1) 里。你可以重复下列操作任意次: 令 (i,j)(i, j) 为棋子当前所在的格子。 把棋子移动到到 (i,j)(i, j) 的距离恰是 M\sqrt{M} 的格子。

这里,我们定义格子 (i,j)(i, j) 和格子 (k,l)(k, l) 的距离为 (ik)2+(jl)2\sqrt{(i-k)^2+(j-l)^2}

对每个格子 (i,j)(i, j),判断棋子能否到达 (i,j)(i, j)。若能,求出所需的最小操作次数。 限制

	$1≤N≤400$

	$1 \le M \le 10^6$

	$N$ 和 $M$ 是整数。

输入格式

NN MM

输出格式

输出 NN 行。 第 ii 行有 NN 个整数。若棋子能到达 (i,j)(i, j),第 ii 行的第 jj 个整数是所需的最小操作次数;否则是 1-1

3 1

样例二 

输入 
10 5

输出 
0 3 2 3 2 3 4 5 4 5

3 4 1 2 3 4 3 4 5 6

2 1 4 3 2 3 4 5 4 5

3 2 3 2 3 4 3 4 5 6

2 3 2 3 4 3 4 5 4 5

3 4 3 4 3 4 5 4 5 6

4 3 4 3 4 5 4 5 6 5

5 4 5 4 5 4 5 6 5 6

4 5 4 5 4 5 6 5 6 7

5 6 5 6 5 6 5 6 7 6