CF2081F.Hot Matrix

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Piggy Zhou 热爱矩阵,尤其是能让他感到兴奋的"热矩阵"。

一个大小为 n×nn \times n 的热矩阵定义如下。令 ai,ja_{i, j} 表示第 ii 行第 jj 列的元素(1≤i,j≤n1 \le i, j \le n):

  1. 矩阵的每一行和每一列都是 00 到 n−1n-1 所有数字的一个排列。
  2. 对于所有满足 1≤i,j≤n1 \le i, j \le n 的索引对 (i,j)(i, j),有 ai,j+ai,n−j+1=n−1a_{i, j} + a_{i, n - j + 1} = n - 1。
  3. 对于所有满足 1≤i,j≤n1 \le i, j \le n 的索引对 (i,j)(i, j),有 ai,j+an−i+1,j=n−1a_{i, j} + a_{n - i + 1, j} = n - 1。
  4. 所有有序对 (ai,j,ai,j+1)\left(a_{i, j}, a_{i, j + 1}\right)(其中 1≤i≤n1 \le i \le n,1≤j<n1 \le j < n)必须互不相同。
  5. 所有有序对 (ai,j,ai+1,j)\left(a_{i, j}, a_{i + 1, j}\right)(其中 1≤i<n1 \le i < n,1≤j≤n1 \le j \le n)必须互不相同。

现在,Piggy Zhou 给定你一个数字 nn,你需要判断是否存在对应的热矩阵。若存在则构造一个符合要求的热矩阵,否则告知他无法构造。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤10001 \le t \le 1000)。接下来描述每个测试用例。

每个测试用例的输入仅包含一个整数 nn(1≤n≤30001 \le n \le 3000)。

保证所有测试用例的 nn 总和不超过 30003000。

输出格式

对于每个测试用例:

  • 若不存在热矩阵,输出"NO"(不含引号)。
  • 否则,在第一行输出"YES"(不含引号),随后输出 nn 行,每行包含 nn 个数字,表示符合要求的热矩阵。

若存在多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    1
    2
    3
    4

    输出#1

    YES
    0
    YES
    0 1
    1 0
    NO
    YES
    0 1 2 3
    1 3 0 2
    2 0 3 1
    3 2 1 0

说明/提示

第一个、第二个和第四个测试用例中,可以验证示例提供的矩阵满足题目所有条件。

第三个测试用例中,通过枚举所有可能的矩阵,可以证明不存在满足条件的热矩阵。

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页