#3712. 例2-二维数组区间更新与查询-差分2
例2-二维数组区间更新与查询-差分2
题目描述:
给定一个大小为 \( n \times m \) 的矩阵,初始时所有元素均为 0。接下来进行 ( t ) 次更新操作,每次操作给出 5 个整数 \( x_1, y_1, x_2, y_2, v \),表示将子矩阵区域 \([x_1, x_2] \times [y_1, y_2]\) 内的所有元素加上 \( v \);随后给出 \( q \) 次查询,每次查询给出一对坐标 \( (x, y) \),要求输出更新后该位置的最终值。请使用二维差分数组的方法高效地完成更新与查询。
输入格式:
- 第一行包含两个整数 \( n \) 和 \( m \)。
- 第二行包含两个整数 \( t \) 和 \( q \)。
- 接下来 \( t \) 行,每行包含 5 个整数 \( x_1, y_1, x_2, y_2, v \) 表示一次更新操作。
- 接下来 \( q \) 行,每行包含两个整数 \( x \)和 \( y \),表示一个查询。
输出格式:
- 对每个查询,输出一行一个整数,表示该位置的最终值。
样例输入:
3 3
3 3
1 1 2 2 3
2 2 3 3 5
1 3 3 3 -2
1 1
2 2
3 3
样例输出:
3
8
3
样例说明:
初始矩阵:
$[
\begin{matrix}
0 & 0 & 0\\[4mm]
0 & 0 & 0\\[4mm]
0 & 0 & 0
\end{matrix}
] $
- 操作 1: 更新子矩阵 \([1,2] \times [1,2]\) 加 3,矩阵变为
$[ \begin{matrix} 3 & 3 & 0\\[4mm] 3 & 3 & 0\\[4mm] 0 & 0 & 0 \end{matrix} ]$ - 操作 2: 更新子矩阵 \([2,3] \times [2,3]\) 加 5,矩阵变为
$[ \begin{matrix} 3 & 3 & 0\\[4mm] 3 & 8 & 5\\[4mm] 0 & 5 & 5 \end{matrix} ]$ - 操作 3: 更新子矩阵 \([1,3] \times [3,3]\) 加 -2,矩阵变为
$[ \begin{matrix} 3 & 3 & -2\\[4mm] 3 & 8 & 3\\[4mm] 0 & 5 & 3 \end{matrix} ]$
查询结果:
- 查询 (1,1):3
- 查询 (2,2):8
- 查询 (3,3):3