#P17160. 矩阵生成

矩阵生成

矩阵生成

来源:洛谷 P17160([入门赛 #50] 矩阵生成)

题目描述

给定一个 2×22 \times 2 的数字矩阵 [abcd]\left[\begin{matrix}a& b\\ c&d\end{matrix}\right],我们定义它的二阶行列式值为 a×dc×ba \times d - c \times b

对于一个 nnmm 列的数字矩阵 AA,用 Ai,jA_{i,j} 表示第 ii 行第 jj 列(1in1 \le i \le n1jm1 \le j \le m)的数字。我们定义它的二阶行列式矩阵是一个 n1n-1m1m-1 列的矩阵 BB,其中 Bi,jB_{i,j} 是矩阵 $\left[\begin{matrix}A_{i,j}&A_{i,j+1}\\ A_{i+1,j}&A_{i+1,j+1}\end{matrix}\right]$ 的二阶行列式值,即 $B_{i,j} = A_{i,j} \times A_{i+1,j+1} - A_{i,j+1} \times A_{i+1,j}$。

现在,给定矩阵 AA。对 AA 求二阶行列式矩阵可以得到矩阵 BB,对 BB 求二阶行列式矩阵可以得到矩阵 CC,对 CC 求二阶行列式矩阵可以得到矩阵 DD

题目会输入一个所求矩阵名,是 A,B,C,D 四个字母之一。请你输出对应的矩阵。

输入格式

第一行有两个整数,表示矩阵 AA 的行数和列数 n,mn,m

接下来 nn 行,每行 mm 个整数,第 ii 行第 jj 列的数表示 Ai,jA_{i,j}

最后一行是一个字符,表示所求的矩阵名 qq

输出格式

先输出两个整数 r,cr,c,表示所求矩阵的行数和列数。

接下来输出 rr 行,每行 cc 个整数,第 ii 行第 jj 列的数表示所求矩阵的第 ii 行第 jj 列的数。

样例 #1

样例输入 #1

3 3
1 2 2
5 6 4
4 4 2
B

样例输出 #1

2 2
-4 -4
-4 -4

样例解释

$B_{1,1}=A_{1,1}\times A_{2,2}-A_{1,2}\times A_{2,1}=1\times6-2\times5=-4$,类似地可以算出其他位置的值均为 4-4

样例 #2

样例输入 #2

3 3
1 2 2
5 6 4
4 4 2
C

样例输出 #2

1 1
0

样例解释

$C_{1,1} = B_{1,1} \times B_{2,2} - B_{1,2} \times B_{2,1} = (-4)\times(-4) - (-4)\times(-4) = 0$。

提示

数据规模与约定

测试点编号 q=q=
11 A
242 \sim 4 B
575 \sim 7 C
8108 \sim 10 D

对全部的测试数据,保证 4n,m1034 \le n, m \le 10^31Ai,j1001 \le A_{i,j} \le 100

提示

  • 根据 qq 确定需要求几次二阶行列式矩阵(A 0 次、B 1 次、C 2 次、D 3 次),模拟即可,总复杂度 O(nm)O(nm)
  • 数值会逐级增长:B104|B| \le 10^4C2×108|C| \le 2 \times 10^8D8×1016|D| \le 8 \times 10^{16},必须用 long long

测试点数据说明

测试点 qq 规模 说明
1 A 4×4 直接输出输入矩阵
2 B 5×5 随机 结果 4×4
3 1000×1000 随机 满规模
4 4×1000 随机 行数最小、列数最大
5 C 6×6 随机 结果 4×4
6 1000×1000 随机 满规模
7 1000×4 随机 行数最大、列数最小
8 D 1000×1000 随机 数值可达 8×10168\times10^{16}
9 4×4 结果 1×1
10 1000×1000 全 1 退化:B/C/D 全为 0