QOJ.ac

QOJ

Limite de temps : 1 s Limite de mémoire : 1024 MB Points totaux : 100

#3715. 矩阵变换

Statistiques

Bobo 有一个 $n$ 行 $n$ 列的矩阵。行从上到下编号为 $0, 1, \dots, (n - 1)$,列从左到右编号为 $0, 1, \dots, (n - 1)$。位于第 $i$ 行第 $j$ 列的单元格记作 $(i, j)$。每个单元格 $(i, j)$ 中初始填写的数字为 $i \times n + j$。

Bobo 将依次进行 $q$ 次变换。变换共有 2 种类型。第 $i$ 次变换的类型为 $t_i$,由 3 个参数 $l_i, r_i, d_i$ 描述。

如果 $t_i = 1$,则对于 $l_i \le x \le r_i$ 且 $0 \le y < n$ 的单元格,变换会将单元格 $(x, (y + d_i) \pmod n)$ 中的数字转移到单元格 $(x, y)$。

如果 $t_i = 2$,则对于 $0 \le x < n$ 且 $l_i \le y \le r_i$ 的单元格,变换会将单元格 $((x + d_i) \pmod n, y)$ 中的数字转移到单元格 $(x, y)$。

注意 $a \pmod b$ 表示 $a$ 除以 $b$ 的余数。

Bobo 想知道矩阵最终的状态。

输入格式

第一行包含 2 个整数 $n, q$ ($1 \le n \le 200, 1 \le q \le 10^5$)。

接下来的 $q$ 行,第 $i$ 行包含 4 个整数 $t_i, l_i, r_i, d_i$ ($t_i \in \{1, 2\}, 0 \le l_i \le r_i < n, 0 \le d_i < n$)。

输出格式

输出 $n$ 行。第 $i$ 行包含 $n$ 个整数 $a_{i,0}, a_{i,1}, \dots, a_{i,n-1}$,表示最终单元格 $(i, j)$ 中的数字。

样例

样例输入 1

3 2
1 1 1 1
2 1 1 1

样例输出 1

0 5 2
4 7 3
6 1 8

样例输入 2

3 1
1 0 2 1

样例输出 2

1 2 0
4 5 3
7 8 6

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.