#P14530. [2026年省队模拟联测]矩阵求和

    ID: 13747 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>CF2300线段树组合数学数学数据结构

[2026年省队模拟联测]矩阵求和

【题目描述】

给你一个 n×mn\times m 的矩阵,行列从 11 开始标号,第 iijj 列的值是 (i1)m+j(i-1)*m+j。现在要求你实现以下操作。

  1. 交换两行。
  2. 交换两列。
  3. 求一个子矩阵的做k次前缀和之后的和,对 109+710^9+7 取模。

【输入格式】

第一行三个数 n,m,qn,m,q 分别表示矩阵的大小和操作个数。

接下来 qq 行,每行一个操作,一共有 33 种操作:

R x y 表示交换第x行和第y行

C x y 表示交换第x列和第y列

Q x1 y1 x2 y2 k 表示求以 (x1,y1)(x_1,y_1) 为左上角,以 (x2,y2)(x_2,y_2) 为右下角的子矩阵求 kk 次二维前缀和之后这个矩阵的和。

注意操作 QQ 不会对原矩阵作出修改。

【输出格式】

对每一个 QQ 操作,输出一行一个整数表示答案。

【输入输出样例】

matrix.in matrix.out
3 4 5
Q 1 1 2 4 2
R 1 3
Q 2 3 3 4 0
C 3 4
Q 1 1 3 4 10
220
22
244478

【数据规模与约定】

对于 100%100\% 的数据,保证 $1\leqslant n,m,q\leqslant 10^5,0\leqslant k\leqslant 10$。下表中空格处表示无特殊限制。

测试点 n,m,qn,m,q\leqslant kk
0 200200
1 50005000 =0=0
2,3 没有修改
4
5,6 =0=0
7 没有修改
8,9