CF2263B Min Matrices

题目描述

农夫 John 从 Elsie 那里听说 Bessie 最喜欢的数字是 $k$,于是他想手工制作一份礼物给她一个惊喜。 对于一个二维矩阵 $B$,定义 $f(B)$ 为所有行的最小元素以及所有列的最小元素所组成的集合。 农夫 John 希望你帮他构造一个 $n \times n$ 的矩阵 $A$,其中包含 $1$ 到 $n^2$ 的所有数字且每个数字只出现一次,并且满足 $|f(A)| = k$,或者说明不存在这样的矩阵。

输入格式

每组测试数据包含多组测试用例。第一行一个整数 $t$($1 \leq t \leq 1000$),表示测试用例的数量。 每个测试用例的第一行包含两个整数 $n$ 和 $k$($1 \leq n \leq 1000$,$0 \leq k \leq 2n$),分别表示矩阵的大小和目标集合 $f(A)$ 的大小。 保证所有测试用例中 $n$ 的总和不超过 $1000$。

输出格式

如果不存在这样的矩阵,输出 $-1$。否则,输出 $n$ 行,每行 $n$ 个整数,表示满足条件的 $n \times n$ 矩阵。 如果有多组方案,可以输出任意一种。

说明/提示

在第一个测试用例中,不可能构造出一个 $3 \times 3$ 矩阵使得 $f(A)$ 为空。 在第二个测试用例中,行最小值分别是 $[5, 3, 1]$,列最小值分别是 $[2, 1, 4]$。因此 $f(A) = \{1, 2, 3, 4, 5\}$,所以 $|f(A)| = 5$,符合要求。 由 ChatGPT 5 翻译