#6725. 实时区间统计系统
实时区间统计系统
题目 7:实时区间统计系统
题目描述
某数据分析系统需要维护一组长度为 n 的整数数据:
系统初始化时,已经记录了每个位置的数据值。
在运行过程中,数据会不断发生变化,同时系统需要回答多个区间统计请求。
系统支持两种操作:
操作类型 1:数据调整
输入:
1 i x
表示:
将第 i 个位置的数据增加 x。
即:
其中:
x可以为正数,也可以为负数;- 修改后数据可能发生变化。
操作类型 2:区间统计
输入:
2 l r
表示:
统计编号从 l 到 r 的所有数据之和:
并输出统计结果。
请编写程序,帮助系统完成所有操作。
输入格式
第一行包含两个整数:
n m
表示:
n:数据数量;m:操作次数。
第二行包含 n 个整数:
a1 a2 ... an
表示初始数据。
接下来 m 行,每行表示一次操作:
若操作为修改:
1 i x
表示第 i 个数据增加 x。
若操作为查询:
2 l r
表示查询区间:
的数据总和。
输出格式
对于每一次类型为:
2 l r
的操作,输出一行答案。
数据范围
对于所有测试数据:
1 ≤ n,m ≤ 100000
-10^9 ≤ a_i,x ≤ 10^9
1 ≤ i ≤ n
1 ≤ l ≤ r ≤ n
保证所有区间查询结果均在 long long 范围内。
样例输入
5 5
1 2 3 4 5
2 1 5
1 3 10
2 2 4
1 5 -2
2 4 5
样例输出
15
19
7
样例解释
初始数据:
a = [1,2,3,4,5]
第一次操作
2 1 5
查询:
即:
输出:
15
第二次操作
1 3 10
表示:
第 3 个位置增加 10。
变化:
数组变为:
a = [1,2,13,4,5]
第三次操作
2 2 4
查询:
即:
输出:
19
第四次操作
1 5 -2
表示:
第 5 个位置减少 2。
数组变为:
a = [1,2,13,4,3]
第五次操作
2 4 5
查询:
即:
输出:
7
相关
在以下作业中: