#4901. 构造一个 𝑛∗𝑛n∗n 的矩阵

构造一个 𝑛∗𝑛n∗n 的矩阵

感谢 杨乐多,杨老师提供的题单

Not Adjacent Matrix

题面翻译

构造一个 nnn*n 的矩阵,使得相邻的两个格子填的数不能相邻。

输入

输入包含多组数据。第一行一个正整数 tt,表示数据组数。

接下来 tt 行,每行一个正整数,表示每组数据的 nn

输出

输出这个矩阵,如无解输出1-1

题目描述

We will consider the numbers a a and b b as adjacent if they differ by exactly one, that is, ab=1 |a-b|=1 .

We will consider cells of a square matrix n×n n \times n as adjacent if they have a common side, that is, for cell (r,c) (r, c) cells (r,c1) (r, c-1) , (r,c+1) (r, c+1) , (r1,c) (r-1, c) and (r+1,c) (r+1, c) are adjacent to it.

For a given number n n , construct a square matrix n×n n \times n such that:

  • Each integer from 1 1 to n2 n^2 occurs in this matrix exactly once;
  • If (r1,c1) (r_1, c_1) and (r2,c2) (r_2, c_2) are adjacent cells, then the numbers written in them must not be adjacent.

输入格式

The first line contains one integer t t ( 1t100 1 \le t \le 100 ). Then t t test cases follow.

Each test case is characterized by one integer n n ( 1n100 1 \le n \le 100 ).

输出格式

For each test case, output:

  • -1, if the required matrix does not exist;
  • the required matrix, otherwise (any such matrix if many of them exist).

The matrix should be outputted as n n lines, where each line contains n n integers.

样例 #1

样例输入 #1

3
1
2
3

样例输出 #1

1
-1
2 9 7
4 6 3
1 8 5

题意翻译

构造一个 nn 的矩阵,使得相邻的两个格子填的数不能相邻。

输入

输入包含多组数据。第一行一个正整数 𝑡t,表示数据组数。

接下来 𝑡t 行,每行一个正整数,表示每组数据的 𝑛n

输出

输出这个矩阵,如无解输出−11。

输入输出样例

输入 #1复制

3
1
2
3

输出 #1复制

1
-1
2 9 7
4 6 3
1 8 5

Limitation

1s, 1024KiB for each test case.