Files
2026-10-01 23:47:16 +08:00

79 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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$ |