#P17730. 数组

    ID: 1054 传统题 文件IO:array 1000ms 512MiB 尝试: 1 已通过: 1 难度: 提高 上传者: 标签>组合数学差分CSP-J复赛T4前缀和SCP-J 2026洛谷模拟2026模拟

数组

题目描述

本题使用文件输入输出:输入文件名为 array.in,输出文件名为 array.out。

若数组 a,Sa,S 长度均为 nn,且对于所有 1≤i≤n1\le i\le n,均满足 Si=a1+a2+⋯+aiS_i=a_1+a_2+\cdots+a_i,则数组 SS 为数组 aa 的前缀和数组。

小 D 有 nn 个数组 A0,A1,⋯ ,An−1A_0,A_1,\cdots,A_{n-1},长度均为 nn。用 Ai,jA_{i,j} 表示数组 AiA_i 的第 jj 项。已知数组 A0A_0 的初始值,对于所有 1≤i<n1\le i<n,数组 AiA_i 为数组 Ai−1A_{i-1} 的前缀和数组。

现在小 D 有 pp 个修改操作和 qq 个查询操作:

  • 对于修改操作,给出 x,l,r,kx,l,r,k。将数组 AxA_x 的第 l∼rl\sim r 项均增加 kk。增加后,重新计算除了数组 AxA_x 外的所有数组,使得对所有 1≤i<n1\le i<n,满足数组 AiA_i 为数组 Ai−1A_{i-1} 的前缀和数组。
  • 对于查询操作,给出 x,l,rx,l,r。请求出数组 AxA_x 中第 l∼rl\sim r 项之和。结果对 109+710^9+7 取模。

请你执行这些操作,并输出所有查询操作的结果。

输入格式

输入文件名为 array.in。

输入的第一行包含三个整数 n,p,qn,p,q,分别表示数组数量,修改操作数量和询问操作数量。

输入的第二行包含 nn 个整数 A0,1,A0,2,…,A0,nA_{0,1},A_{0,2},\dots,A_{0,n},表示初始的数列 A0A_0。

接下来 p+qp+q 行,每行输入第一个数字 oo 表示操作种类:

  • 若 o=1o=1,则为修改操作。接下来输入四个数字 x,l,r,kx,l,r,k,表示将数组 AxA_x 的第 l∼rl\sim r 项增加 kk。
  • 若 o=2o=2,则为查询操作。接下来输入三个数字 x,l,rx,l,r,表示查询数组 AxA_x 中第 l∼rl\sim r 项之和。

输出格式

输出文件名为 array.out。

输出 qq 行,一行一个非负整数,表示查询操作的结果。结果对 109+710^9+7 取模。

样例 #1

样例输入 #1

10 2 3
1 2 3 4 5 6 7 8 9 10
1 0 2 4 1
2 0 2 4
2 1 2 4
1 1 3 5 -1
2 2 2 8

样例输出 #1

12
25 
378

提示

【样例 1 解释】

第一次修改后:

  • 原数组 A0A_0 为 [1,3,4,5,5,6,7,8,9,10][1,3,4,5,5,6,7,8,9,10];
  • A1A_1 为 [1,4,8,13,18,24,31,39,48,58][1,4,8,13,18,24,31,39,48,58];
  • 查询的答案分别为 3+4+5=123+4+5=12 和 4+8+13=254+8+13=25。

第二次修改后:

  • A1A_1 为 [1,4,7,12,17,24,31,39,48,58][1,4,7,12,17,24,31,39,48,58];
  • A2A_2 为 [1,5,12,24,41,65,96,135,183,241][1,5,12,24,41,65,96,135,183,241];
  • 第 22 项到第 88 项的和为 5+12+24+41+65+96+135=3785+12+24+41+65+96+135=378。

【样例 2】

见附件 array.zip 中的 array2.in 与 array2.ans。

该样例满足测试点 4∼74 \sim 7 的限制。

【样例 3】

见附件 array.zip 中的 array3.in 与 array3.ans。

该样例满足测试点 8∼108 \sim 10 的限制。

【样例 4】

见附件 array.zip 中的 array4.in 与 array4.ans。

该样例满足测试点 22∼2522 \sim 25 的限制。

【数据范围】

对于所有测试点,保证:

  • 1≤n≤3001\le n\le 300
  • 0≤p,q≤1050\le p,q \le 10^5
  • 对于所有 1≤i≤n1\le i\le n,均有 ∣A0,i∣≤109\lvert A_{0,i}\rvert\le 10^9
  • o∈{1,2}o\in\{1,2\}
  • 对于所有操作,均有 0≤x<n0\le x<n,1≤l≤r≤n1\le l\le r\le n
  • 对于所有操作 11,均有 ∣k∣≤109\lvert k\rvert\le 10^9
测试点编号 n≤n\le 特殊性质
1∼31\sim 3 1010 p,q≤10p,q\le 10
4∼74\sim 7 5050 无
8∼108\sim 10 300300 x=0x=0
11,1211,12 p=0p=0
13,1413,14 q=1q=1
15,1615,16 询问中的 x=0x=0
17,1817,18 修改中的 x=0x=0
19∼2119\sim 21 p,q≤3000p,q\le 3000
22∼2522\sim 25 无

附件