#lydlx04x0909. 莫基亚 Mokia
莫基亚 Mokia
题目描述
有一个 的矩阵,所有格子的初始值均为 。
现在要对该矩阵进行一系列操作。
每次操作可以增加某格子的权值,或询问某子矩阵的总权值。
对于每个询问操作,请你输出被询问子矩阵的总权值是多少。
输入格式
第一行两个整数 ,其中 为矩阵初始值, 为矩阵大小。
接下来每行为以下三种输入之一:
1 x y a—— 把第 行第 列的格子 权值增加 ;2 x1 y1 x2 y2—— 询问以 为左下角, 为右上角的矩阵内所有格子的权值和;3—— 输入结束。
注意:题目中坐标 为左下角, 为右上角,这意味着 ,。
输出格式
对于每个询问(即第二种输入),输出一行表示答案。
样例
0 4
1 2 3 3
2 1 1 3 3
1 2 2 2
2 2 2 3 4
3
3
5
样例解释
初始状态:
,所有格子值为 。
操作 1:1 2 3 3
将格子 增加 ,矩阵变为:
(1,1)=0 (1,2)=0 (1,3)=0 (1,4)=0
(2,1)=0 (2,2)=0 (2,3)=3 (2,4)=0
(3,1)=0 (3,2)=0 (3,3)=0 (3,4)=0
(4,1)=0 (4,2)=0 (4,3)=0 (4,4)=0
操作 2:2 1 1 3 3
查询左下角 到右上角 的子矩阵:
(1,1)=0 (1,2)=0 (1,3)=0
(2,1)=0 (2,2)=0 (2,3)=3
(3,1)=0 (3,2)=0 (3,3)=0
和为 ,输出 。
操作 3:1 2 2 2
将格子 增加 ,矩阵变为:
(1,1)=0 (1,2)=0 (1,3)=0 (1,4)=0
(2,1)=0 (2,2)=2 (2,3)=3 (2,4)=0
(3,1)=0 (3,2)=0 (3,3)=0 (3,4)=0
(4,1)=0 (4,2)=0 (4,3)=0 (4,4)=0
操作 4:2 2 2 3 4
查询左下角 到右上角 的子矩阵:
(2,2)=2 (2,3)=3 (2,4)=0
(3,2)=0 (3,3)=0 (3,4)=0
和为 ,输出 。
操作 5:3
结束程序。
数据范围
- 修改操作数
- 询问次数
- 所有数据的矩阵初始值 均为
时间与空间限制
- 时间限制:2秒
- 空间限制:256MB
提示
由于 最大可达 ,直接开二维数组会超出内存限制,需要使用高效的数据结构(如树状数组或线段树)进行二维前缀和查询与单点更新。
注意:题目中坐标 为左下角, 为右上角,实际计算时需要转化为标准的前缀和形式。