线段树模板
最近时间太紧了鸭,算法细节就不写了吧,就留个模板吧 : (
线段树就是一棵树,树上的每个节点对应一个线段(也就是一个区间),同一层的节点所代表的区间相互不会重叠,并且加起来是一个连续的区间,叶子节点是区间的单位长度,不可再分~
1. 例题
题目链接:洛谷 P3372 【模板】线段树 1
题目描述
如题,已知一个数列,你需要进行下面两种操作:
- 将某区间每一个数加上 k。
- 求出某区间每一个数的和。
输入格式
第一行包含两个整数 n, m,分别表示该数列数字的个数和操作的总个数。
第二行包含 n 个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。
接下来 m 行每行包含 3 或 4 个整数,表示一个操作,具体如下:
1 x y k
:将区间 [x, y] 内每个数加上 k。2 x y
:输出区间 [x, y] 内每个数的和。
输出格式
输出包含若干行整数,即为所有操作 2 的结果。
具体样例参考洛谷原题哟~
2. 解题模板
上模板~
1 |
|