Files
luogu/P17538.md
T
2026-10-01 23:47:16 +08:00

2.8 KiB
Raw Blame History

P17538 音符方阵

题目背景

『你会忘记我吗?』

你突然这样问我,我不知道应该怎么回答。

我的记忆是有限的,至于一生都不会忘记的部分只有一个 n \times n 的方阵,奢求能够把和你度过的所有时光全部镌刻其中显然是不可能了。但是我们一起合奏过的音符构成了若干音阶。如果能够记住这些音符,也许就能记住永远向往着自由,永远绽放着的你了。你的演奏实在是太特别,我绝对不可能记错的。

『不会忘记,即使是死也不会的。』

题目描述

给定一个 $n$,构造一个 n\times n 的矩阵 a_{nn} 满足:

  • 对于矩阵中的所有元素 $a_{ij}$,满足 1\le a_{ij}\le n 且为整数。
  • 对于每个 1 到 n 的整数 $i$:
    • 存在且仅存在一行,使得这一行上所有 i 的倍数列位置上出现的数都是 $i$;
    • 存在且仅存在一列,使得这一列上所有 i 的倍数行位置上出现的数都是 $i$。

可以证明,至少存在一种符合要求的构造。如果有多种构造,你可以输出任意一种。

输入格式

本题包含多组测试。

对于每组数据,第一行一个整数 $T$,表示测试数据组数。

对于每组测试数据,输入一行一个整数 $n$,表示你要构造的方阵大小。

输出格式

对于每组数据,输出 n 行,每行 n 个用空格隔开的整数,表示你构造的方阵。

输入输出样例 #1

输入 #1

2
4
1

输出 #1

1 1 1 1
1 2 1 4
1 2 3 2
1 2 4 3
1

说明/提示

样例 #1 解释

对于第一组数据:

  • 1 满足要求。因为第一行上所有 1 的倍数列位置($(1,1),(1,2),(1,3),(1,4)$)上均为 $1$,第一列上所有 1 的倍数行位置($(1,1),(2,1),(3,1),(4,1)$)上均为 $1$,并且没有其他行和列满足对应的要求。
  • 2 满足要求。因为第三行上所有 2 的倍数列位置($(3,2),(3,4)$)上均为 $2$,第二列上所有 2 的倍数行位置($(2,2),(4,2)$)上均为 $2$,并且没有其他行和列满足对应的要求。
  • 3 满足要求。因为第三行上所有 3 的倍数列位置($(3,3)$)上均为 $3$,第三列上所有 3 的倍数行位置($(3,3)$)上均为 $3$,并且没有其他行和列满足对应的要求。
  • 4 满足要求。因为第二行上所有 4 的倍数列位置($(2,4)$)上均为 $4$,第三列上所有 4 的倍数行位置($(4,3)$)上均为 $4$,并且没有其他行和列满足对应的要求。

所以这是一种符合要求的矩阵。

数据范围

本题开启捆绑测试。

对于 100\% 的数据,$1\le T\le 100$,$1\le \sum n\le 2000$。

子任务 \sum n\le 得分
1 8 25
2 20 25
3 2000 50