A93172.「SNOI2024」矩阵
省选/NOI-
官方
通过率:0%
时间限制:8.00s
内存限制:1024MB
题目描述
你要维护一个 n×n 的矩阵 A,其中第 i 行 第 j 列的元素记作 Ai,j。行和列从 1 开始标号。一开始,有 Ai,j=(i+1)jmod998244353。
你需要支持 q 个操作,每个操作是下面两种操作中的一种。
- 1 x1 y1 x2 y2,这里保证 y2−x2=y1−x1。将子矩形 [x1,x2]×[y1,y2] 逆时针旋转 90 度。
- 具体地,令 d=x2−x1+1。
- 首先提取 d×d 的子矩阵 A′,对于所有的 i,j(1≤i,j≤d),令Ai,j′←Ax1+i−1,y1+j−1。
- 然后将 A′ 旋转,得到一个 d×d 的子矩阵 B′,令 Bi,j′←Ad−j+1,i′。
- 然后将 B′ 填回到 A 中,对所有的 i,j(1≤i,j≤d),令 Ai+x1−1,j+y1−1←Bi,j′。
- 2 x1 y1 x2 y2 d。将子矩形 [x1,x2]×[y1,y2] 内所有的元素加 d。
- 具体地,对于每个 i(x1≤i≤x2),j(y1≤j≤y2),令 Ai,j←Ai,j+d。
你需要在所有操作结束之后,输出这个矩阵。由于输出可能很大,请输出
(i=1∑nj=1∑nAi,j×12345(i−1)n+j)mod1000000007
的结果。
输入格式
第一行两个整数 n,q 表示矩阵大小和操作个数。
接下来 q 行,每行若干个数,表示上面的某种操作。
输出格式
输出一个整数,表示答案对 1000000007 取模的结果。
输入输出样例
输入#1
4 4 1 1 2 3 4 2 2 1 4 2 3 1 2 1 3 2 2 1 1 1 4 5
输出#1
984660761
输入#2
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
输出#2
94292030
说明/提示
对于所有的数据,保证 1≤n≤3000, 1≤q≤3000。
对于每个操作,保证 1≤x1≤x2≤n,1≤y1≤y2≤n,1≤d≤109。
具体如下:
| 测试点编号 | n≤ | q≤ | 特殊性质 |
|---|---|---|---|
| 1 | 100 | 3000 | |
| 2 | 3000 | 3000 | A |
| $ 3\sim4$ | 3000 | 2000 | B |
| $ 5\sim6$ | 3000 | 3000 | B |
| $ 7\sim8$ | 3000 | 2000 | |
| 9∼10 | 3000 | 3000 |
特殊性质 A:保证没有第一类旋转操作。
特殊性质 B:保证没有第二类加法操作。