#LOJ132. 【模板】树状数组 3(Fenwick Tree 3)

0

【模板】树状数组 3(Fenwick Tree 3)

【模板】树状数组 3(Fenwick Tree 3)

题目描述

这是一道模板题。

给定数列 a1,a2,⋯ ,ana_1,a_2,\cdots, a_n,你需要依次进行 qq 个操作,操作有两类:

  • 1 l r x: 给定 l,r,xl,r,x,对于所有 i∈[l,r]i\in [l,r],将所有 aia_i 加上 xx(换言之,将 al,al+1,⋯ ,ara_l,a_{l+1},\cdots,a_{r})分别加上 xx
  • 2 l r:给定 l,rl,r,求 ∑i=lrai\sum_{i=l}^r a_i 的值(换言之,求 al+al+1+⋯+ara_l+a_{l+1}+\cdots + a_{r} 的值)

输入格式

第一行包含 2 个正整数 n,qn,q,表示数列的长度和询问次数。

第二行包含 nn 个整数 a1,a2,⋯ ,ana_1,a_2,\cdots, a_n。

接下来有 qq 行,每行一个操作,为以下两种之一:

  • 1 l r x: 对于所有 i∈[l,r]i\in [l,r],将所有 aia_i 加上 xx
  • 2 l r:输出 ∑i=lrai\sum_{i=l}^r a_i 的值

输出格式

对于每个 2 l r 操作,输出一行,每行有一个整数,表示所求的结果。

样例输入 #1

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

样例输出 #1

15
34
32
33
50

数据范围

对于所有数据,$1\le n, q\le 10^6,|a_i|\le 10^6, 1\le l \le r \le n,|x| \le 10^6$

知识点与难度

本题涉及的知识点从属于 CSP-S,难度(CF Rating):1400。


测试点分布

Subtask 分值 测试点编号 说明
0 10 1 样例
1 25 2~8 小规模与边界测试数据
2 30 9~16 中等规模测试数据
3 35 17~25 满规模极限测试数据

出处:原题链接