传统题 2000ms 256MiB

Constructive Problem, Again

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

给定一个正整数 nn,请构造一个 nn 行 nn 列的整数矩阵 AA,满足以下所有条件:

  • 每个元素都在 11 到 nn 之间,即 1≤Ai,j≤n1\le A_{i,j}\le n。
  • 同一行中的元素两两不同,即对任意 1≤i≤n1\le i\le n 以及 1≤j<k≤n1\le j<k\le n,都有 Ai,j≠Ai,kA_{i,j}\ne A_{i,k}。
  • 同一列中的元素两两不同,即对任意 1≤j≤n1\le j\le n 以及 1≤i<k≤n1\le i<k\le n,都有 Ai,j≠Ak,jA_{i,j}\ne A_{k,j}。

不同行且不同列的两个元素可以相同。可以证明,对于数据范围内的每个 nn,都存在满足条件的矩阵。

请输出任意一个满足条件的矩阵。

输入格式

输入一行,包含一个整数 nn,表示矩阵的行数和列数。

输出格式

输出 nn 行,每行 nn 个整数,表示你构造的矩阵。若有多种合法答案,输出任意一种即可。

测试样例

2
1 2
2 1
3
2 1 3
1 3 2
3 2 1

说明/提示

对于所有测试数据,1≤n≤50001\le n\le 5000。

本题输出量较大,建议使用较快的输入输出方式。

使用 C++ 时,可以在程序开头加入以下语句关闭同步流,关闭同步流后,注意不要混用 cin, cout 和 scanf, printf。

std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);

输出换行时使用 '\n',而不是 std::endl,以免频繁刷新缓冲区。

使用 Python 时,请尽可能减少 print() 的调用次数,否则会超时。

2026 TGU-ACM 程序设计新生赛

未参加
状态
已结束
规则
XCPC
题目
12
开始于
2026-10-11 13:00
结束于
2026-10-11 18:00
持续时间
5 小时
主持人
参赛人数
68