Ma trận không kề

Đề bài

Mô tả

Hai số ab được gọi là kề nhau nếu chúng hơn kém nhau đúng 1 đơn vị, tức là |ab|=1.

Hai ô của một ma trận vuông n×n được gọi là kề nhau nếu chúng có chung một cạnh, tức là ô (r,c) kề với các ô (r,c1), (r,c+1), (r1,c)(r+1,c).

Cho số nguyên n, hãy xây dựng một ma trận vuông n×n sao cho:

  • Mỗi số nguyên từ 1 đến n2 xuất hiện đúng một lần trong ma trận;
  • Nếu (r1,c1)(r2,c2) là hai ô kề nhau thì hai số ghi trong chúng không được kề nhau.

Dữ liệu vào

  • Dòng đầu chứa một số nguyên t là số lượng bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm một dòng chứa một số nguyên n.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra:

  • 1 nếu ma trận cần tìm không tồn tại;
  • ngược lại, in ra ma trận thỏa mãn dưới dạng n dòng, mỗi dòng gồm n số nguyên. Nếu có nhiều ma trận thỏa mãn, in ra bất kỳ ma trận nào.

Ràng buộc

  • 1t100
  • 1n100

Ví dụ

Input Output Giải thích
3
1
2
3
1
-1
1 3 5
7 9 2
4 6 8
Với n=1 ma trận chỉ có số 1. Với n=2 không tồn tại ma trận nào thỏa mãn nên in ra 1. Với n=3, ma trận in ra là một cách sắp hợp lệ: mọi cặp ô kề nhau đều chứa hai số không hơn kém nhau đúng 1. Có thể có nhiều đáp án hợp lệ khác.
1
4
1 3 5 7
9 11 13 15
2 4 6 8
10 12 14 16
Một ma trận hợp lệ với n=4: các số lẻ được điền trước theo thứ tự từ trái sang phải, từ trên xuống dưới, sau đó đến các số chẵn.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0