luogu#P10061. [SNOI2024] 矩阵
[SNOI2024] 矩阵
题目描述
你要维护一个 的矩阵 ,其中第 行第 列的元素记作 。行和列从 开始标号。一开始,有 。
你需要支持 个操作,每个操作是下面两种操作中的一种。
- ,这里保证 。将子矩形 逆时针旋转 度。
- 具体地,令 。
- 首先提取 的子矩阵 ,对于所有的 (),令 。
- 然后将 旋转,得到一个 的子矩阵 ,令 。
- 然后将 填回到 中,对所有的 (),令 。
- 。将子矩形 内所有的元素加 。
- 具体地,对于每个 ()、(),令 。
你需要在所有操作结束之后,输出这个矩阵。由于输出可能很大,请输出
$$\Biggl( \sum_{i = 1}^{n} \sum_{j = 1}^{n} A_{i, j} \times {12345}^{(i - 1) n + j} \Biggr) \bmod 1000000007 $$的结果。
输入格式
第一行两个整数 表示矩阵大小和操作个数。
接下来 行,每行若干个数,表示上面的某种操作。
输出格式
输出一个整数,表示答案对 取模的结果。
4 4
1 1 2 3 4
2 2 1 4 2 3
1 2 1 3 2
2 1 1 1 4 5
984660761
10 10
2 5 1 10 4 689412516
1 3 4 3 4
1 3 5 4 6
1 4 1 8 5
1 1 2 1 2
1 4 2 7 5
1 2 5 2 5
2 3 3 3 9 856075030
2 4 2 5 6 308750020
2 1 5 9 7 252732904
94292030
提示
【样例 #1 解释】
对于第一个样例,矩阵分别为
$$\begin{bmatrix} 2 & {\textcolor{red}{4}} & {\textcolor{red}{8}} & {\textcolor{red}{16}} \\ 3 & {\textcolor{red}{9}} & {\textcolor{red}{27}} & {\textcolor{red}{81}} \\ 4 & {\textcolor{red}{16}} & {\textcolor{red}{64}} & {\textcolor{red}{256}} \\ 5 & 25 & 125 & 625 \end{bmatrix} \to \begin{bmatrix} 2 & 16 & 81 & 256 \\ {\textcolor{blue}{3}} & {\textcolor{blue}{8}} & 27 & 64 \\ {\textcolor{blue}{4}} & {\textcolor{blue}{4}} & 9 & 16 \\ {\textcolor{blue}{5}} & {\textcolor{blue}{25}} & 125 & 625 \end{bmatrix} \to \begin{bmatrix} 2 & 16 & 81 & 256 \\ {\textcolor{red}{6}} & {\textcolor{red}{11}} & 27 & 64 \\ {\textcolor{red}{7}} & {\textcolor{red}{7}} & 9 & 16 \\ 8 & 28 & 125 & 625 \end{bmatrix} $$$$\to \begin{bmatrix} {\textcolor{blue}{2}} & {\textcolor{blue}{16}} & {\textcolor{blue}{81}} & {\textcolor{blue}{256}} \\ 11 & 7 & 27 & 64 \\ 6 & 7 & 9 & 16 \\ 8 & 28 & 125 & 625 \end{bmatrix} \to \begin{bmatrix} 7 & 21 & 86 & 261 \\ 11 & 7 & 27 & 64 \\ 6 & 7 & 9 & 16 \\ 8 & 28 & 125 & 625 \end{bmatrix} $$其中每个旋转操作对应的数字用红色表示,加操作对应的数字用蓝色表示。
【样例 #3】
见附件中 matrix/matrix3.in
与 matrix/matrix3.ans
,这个样例满足测试点 的条件限制。
【样例 #4】
见附件中 matrix/matrix3.in
与 matrix/matrix3.ans
,这个样例满足测试点 的条件限制。
【数据范围】
对于所有的数据,保证 ,。
对于每个操作,保证 ,,。
具体如下:
测试点编号 | 特殊性质 | ||
---|---|---|---|
无 | |||
A | |||
B | |||
无 | |||
特殊性质 A:保证没有第一类旋转操作。
特殊性质 B:保证没有第二类加法操作。