#B. 矩阵重塑(其二)

    传统题 1000ms 256MiB

矩阵重塑(其二)

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

题目背景

矩阵转置操作是将矩阵的行和列交换的过程。在转置过程中,原矩阵 AA 的元素 aija_{ij} 会移动到转置后的矩阵 ATA^Tajia_{ji} 的位置。这意味着 AA 的第 ii 行第 jj 列的元素在 ATA^T 中成为了第 jj 行第 ii 列的元素。

例如,有矩阵 AA 如下:

$$A=\begin{bmatrix} a & b & c \\ d & e & f \end{bmatrix} $$

它的转置矩阵 ATA^T 会是:

$$A^T=\begin{bmatrix} a & d \\ b & e \\ c & f \end{bmatrix} $$

矩阵转置在线性代数中是一个基本操作,广泛应用于各种数学和工程领域。

题目描述

给定 n×mn\times m 的矩阵 MM,试编写程序支持以下查询和操作:

  1. 重塑操作 ppqq​:将当前矩阵重塑为 p×qp\times q 的形状(重塑的具体定义见上一题);
  2. 转置操作​:将当前矩阵转置;
  3. 元素查询 iijj​:查询当前矩阵第 iijj 列的元素(0i<n0\le i<n0j<m0\le j<m)。

依次给出 tt 个上述查询或操作,计算其中每个查询的结果。

输入格式

从标准输入读入数据。

输入共 n+t+1n+t+1 行。

输入的第一行包含三个正整数 nnmmtt

接下来依次输入初始矩阵 MM 的第 00 到第 n1n−1 行,每行包含 mm 个整数,按列下标从 00m1m−1 的顺序依次给出。

接下来输入 tt 行,每行包含形如 op a b 的三个整数,依次给出每个查询或操作。具体输入格式如下:

  • 重塑操作:1 p q
  • 转置操作:2 0 0
  • 元素查询:3 i j

输出格式

输出到标准输出。

每个查询操作输出一行,仅包含一个整数表示查询结果。

样例1输入

3 2 3
1 2
3 4
5 6
3 0 1
1 2 3
3 1 2

样例1输出

2
6

样例2输入

3 2 5
1 2
3 4
5 6
3 1 0
2 0 0
3 1 0
1 3 2
3 1 0

样例2输出

3
2
5

初始矩阵:

$$\begin{bmatrix} 1 & 2 \\ 3 & 4 \\ 5 & 6 \end{bmatrix} $$

(1,0)(1,0) 位置元素为 33

转置后:

$$\begin{bmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{bmatrix} $$

(1,0)(1,0) 位置元素为 22

重塑后:

$$\begin{bmatrix} 1 & 3 \\ 5 & 2 \\ 4 & 6 \end{bmatrix} $$

(1,0)(1,0) 位置元素为 55

子任务

80%80\% 的测试数据满足:

  • t100t\le 100

全部的测试数据满足:

  • t105t\le 10^5 且其中转置操作的次数不超过 100100
  • nnmm 和所有重塑操作中的 ppqq 均为正整数且 n×m=p×q104n\times m=p\times q\le 10^4
  • 输入矩阵中每个元素的绝对值不超过 10001000

提示

  • 对于 n×mn\times m 的矩阵,虽然转置和重塑操作都可以将矩阵形态变为 m×nm\times n,但这两种操作通常会导致不同的结果。

睿爸周赛(入门组20240929)

未参加
状态
已结束
规则
IOI
题目
4
开始于
2024-9-28 9:00
结束于
2024-10-4 21:00
持续时间
3.5 小时
主持人
参赛人数
8