/ Vijos / 题库 /

动态子序列和

动态子序列和

时间限制:1秒  内存限制:256N


【问题描述】

  给定一个长度为 \(n\) 的整数数组 \(a[1]、a[2]、…、a[n] (-10^9≤a[i]≤10^9)\),和 \(m\) 个操作:
  操作1:\(1\ i\ x\) 把 \(a[i]\) 的值增加 \(x(-10^3≤x≤10^3)\);
  操作2:\(i\ j\) 查询当前序列的连续子序列 \(a[i]..a[j]\) 的和。
  在信息学竞赛中把这类型的题称为序列的 单点修改,区间查询

【输入格式】

  第一行包含两个整数 \(n\) 和 \(m\),表示数组有 \(n\) 个元素,\(m\) 表示有 \(m\) 个操作;
  接下来的一行包含 \(n\) 个整数,第 \(i\) 个整数表示 \(a[i]\);
  再接下来的 \(m\) 行,每行表示一个操作。

【输出格式】

  按输入顺序输出操作2的结果

【输入输出样例】

 Input

8 5
3 2 8 1 7 2 5 1
2 3 7
1 2 -1
1 5 10
2 1 6
2 3 8

 Output

23
32
34

【数据说明】

  对于 \(100\%\) 的数据:\(0<n,m≤100 000\)

【来源】

  Nr.he

信息

ID
3141
难度
9
分类
数据结构 | 线段树树状数组 点击显示
标签
(无)
递交数
4
已通过
1
通过率
25%
被复制
3
上传者