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 翻译