CF2249D Xor Permutation Matrix
题目描述
给定两个整数 $n$ 和 $x$($0 \le x \le n-1$)。
请构造一个 $n\times n$ 的矩阵 $A$,使其满足以下所有条件:
- 对于所有 $1 \le i, j \le n$,都有 $0 \le A_{i,j}\le n-1$;
- $A$ 的每一行都是 $0, 1, \ldots, n-1$ 的一个排列;
- $A$ 的每一列都是 $0, 1, \ldots, n-1$ 的一个排列;
- 对于所有 $1 \le i, j \le n-1$,都有
$$
A_{i,j} \oplus A_{i+1,j} \oplus A_{i,j+1} \oplus A_{i+1,j+1} = x。
$$
这里,$\oplus$ 表示[按位异或运算](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。
或者,判断不存在这样的矩阵。
输入格式
每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 180$),表示测试用例的数量。
接下来每个测试用例占一行,包含两个整数 $n$ 和 $x$($2\le n\le 2500$,$0\le x < n$)。
保证所有测试用例中的 $n$ 之和不超过 $2500$。
输出格式
对于每个测试用例,如果不存在这样的矩阵,输出 $-1$。否则,输出任意一个满足要求的 $n$ 行矩阵。
如果存在多组解,输出其中任意一组均可。
说明/提示
在第一个测试用例中,所给矩阵的每一行和每一列都是 $0,1$ 的排列,且其唯一的相邻 $2\times2$ 子矩阵的异或和为 $0$。
第二和第三个测试用例无解。在最后两个测试用例中,每个相邻的 $2\times2$ 子矩阵的异或和分别为 $1$ 和 $0$。
由 ChatGPT 5 翻译