P17730 [SCP-J 2026] 数组 / array
题目背景
在洛谷上提交试题时,无需文件输入输出。
题目描述
若数组 $a,S$ 长度均为 $n$,且对于所有 $1\le i\le n$,均满足 $S_i=a_1+a_2+\cdots+a_i$,则数组 $S$ 为数组 $a$ 的前缀和数组。
小 D 有 $n$ 个数组 $A_0,A_1,\cdots,A_{n-1}$,长度均为 $n$。用 $A_{i,j}$ 表示数组 $A_i$ 的第 $j$ 项。已知数组 $A_0$ 的初始值,对于所有 $1\le i
输入格式
输入的第一行包含三个整数 $n,p,q$,分别表示数组数量,修改操作数量和询问操作数量。
输入的第二行包含 $n$ 个整数 $A_{0,1},A_{0,2},\dots,A_{0,n}$,表示初始的数列 $A_0$。
接下来 $p+q$ 行,每行输入第一个数字 $o$ 表示操作种类:
- 若 $o=1$,则为修改操作。接下来输入四个数字 $x,l,r,k$,表示将数组 $A_x$ 的第 $l\sim r$ 项增加 $k$。
- 若 $o=2$,则为查询操作。接下来输入三个数字 $x,l,r$,表示查询数组 $A_x$ 中第 $l\sim r$ 项之和。
输出格式
输出 $q$ 行,一行一个非负整数,表示查询操作的结果。结果对 $10^9+7$ 取模。
说明/提示
#### 【样例 1 解释】
第一次修改后:
- 原数组 $A_0$ 为 $[1,3,4,5,5,6,7,8,9,10]$;
- $A_1$ 为 $[1,4,8,13,18,24,31,39,48,58]$;
- 查询的答案分别为 $3+4+5=12$ 和 $4+8+13=25$。
第二次修改后:
- $A_1$ 为 $[1,4,7,12,17,24,31,39,48,58]$;
- $A_2$ 为 $[1,5,12,24,41,65,96,135,183,241]$;
- 第 $2$ 项到第 $8$ 项的和为 $5+12+24+41+65+96+135=378$。
#### 【样例 2】
见选手目录下的 ``array/array2.in`` 与 ``array/array2.ans``。
该样例满足测试点 $4 \sim 7$ 的限制。
#### 【样例 3】
见选手目录下的 ``array/array3.in`` 与 ``array/array3.ans``。
该样例满足测试点 $8 \sim 10$ 的限制。
#### 【样例 4】
见选手目录下的 ``array/array4.in`` 与 ``array/array4.ans``。
该样例满足测试点 $22 \sim 25$ 的限制。
#### 【数据范围】
对于所有测试点,保证:
- $1\le n\le 300$
- $0\le p,q \le 10^5$
- 对于所有 $1\le i\le n$,均有 $\lvert A_{0,i}\rvert\le 10^9$
- $o\in\{1,2\}$
- 对于所有操作,均有 $0\le x