A93172.「SNOI2024」矩阵

省选/NOI-

官方

通过率:0%

时间限制:8.00s

内存限制:1024MB

题目描述

你要维护一个 n×nn \times n 的矩阵 AA,其中第 ii 行 第 jj 列的元素记作 Ai,jA_{i,j}。行和列从 11 开始标号。一开始,有 Ai,j=(i+1)j mod 998244353A_{i, j} = (i+1)^j \bmod 998244353。

你需要支持 qq 个操作,每个操作是下面两种操作中的一种。

  • 1 x1 y1 x2 y21~x_1~y_1~x_2~y_2,这里保证 y2−x2=y1−x1y_2 - x_2 = y_1 - x_1。将子矩形 [x1,x2]×[y1,y2][x_1, x_2] \times [y_1, y_2] 逆时针旋转 9090 度。
    • 具体地,令 d=x2−x1+1d = x_2 - x_1 + 1。
    • 首先提取 d×dd\times d 的子矩阵 A′A',对于所有的 i,j(1≤i,j≤d)i, j (1\leq i, j \leq d),令Ai,j′←Ax1+i−1,y1+j−1A'_{i, j} \leftarrow A_{x_1 + i - 1, y_1 + j- 1}。
    • 然后将 A′A' 旋转,得到一个 d×dd\times d 的子矩阵 B′B',令 Bi,j′←Ad−j+1,i′B'_{i, j} \leftarrow A'_{d - j + 1, i}。
    • 然后将 B′B' 填回到 AA 中,对所有的 i,j(1≤i,j≤d)i, j (1\leq i, j \leq d),令 Ai+x1−1,j+y1−1←Bi,j′A_{i + x_1 - 1, j + y_1 - 1} \leftarrow B'_{i, j}。
  • 2 x1 y1 x2 y2 d2~x_1~y_1~x_2~y_2~d。将子矩形 [x1,x2]×[y1,y2][x_1, x_2] \times [y_1, y_2] 内所有的元素加 dd。
    • 具体地,对于每个 i(x1≤i≤x2),j(y1≤j≤y2)i (x_1 \leq i \leq x_2), j (y_1 \leq j \leq y_2),令 Ai,j←Ai,j+dA_{i, j} \leftarrow A_{i, j} + d。

你需要在所有操作结束之后,输出这个矩阵。由于输出可能很大,请输出

(∑i=1n∑j=1nAi,j×12345(i−1)n+j) mod 1000000007\left( \sum_{i=1}^n \sum_{j=1}^n A_{i,j}\times 12345^{(i-1)n + j}\right) \bmod 1000000007

的结果。

输入格式

第一行两个整数 n,qn, q 表示矩阵大小和操作个数。

接下来 qq 行,每行若干个数,表示上面的某种操作。

输出格式

输出一个整数,表示答案对 10000000071000000007 取模的结果。

输入输出样例

  • 输入#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≤30001\leq n \leq 3000, 1≤q≤30001 \leq q\leq 3000。

对于每个操作,保证 1≤x1≤x2≤n,1≤y1≤y2≤n,1≤d≤1091\leq x_1 \leq x_2\leq n, 1\leq y_1\leq y_2 \leq n, 1\leq d \leq 10^9。

具体如下:

测试点编号 n≤n\leq q≤q\leq 特殊性质
11 100100 30003000
22 30003000 30003000 A
$ 3<>im4$ 30003000 20002000 B
$ 5<>im6$ 30003000 30003000 B
$ 7<>im8$ 30003000 20002000
9∼109\sim10 30003000 30003000

特殊性质 A:保证没有第一类旋转操作。

特殊性质 B:保证没有第二类加法操作。

输入解题思路,AI测评打分。不知道怎么写?

首页