洛谷 - 线段树详解 1 (超详细版)
题目链接:
题目链接 | 题目难度 |
洛谷P3372 【模板】线段树 1 | 普及+/提高 |
哈喽,大家好,我们又见面了。
今天我们来讲线段树。
首先简单介绍一下线段树:
线段树,是一种二叉搜索树,它将一个区间划分成一些小的区间,每个小的区间对应线段树中的一个叶结点。
线段树常常用于数列修改与求值的问题,作者已经整理了一些常考的(如下):
首先是修改:
- 单点修改;
- 单点加、减、乘、除(向上取整,向下取整,四舍五入);
- 区间修改;
- 区间加、减、乘、除(向上取整,向下取整,四舍五入);
- 区间开根(向上取整,向下取整,四舍五入);
- 区间开方;
- 区间翻转;
- 其他(比如区间加等差数列,单点的其他操作)。
然后是查询:
- 单点查询;
- 区间和;
- 区间最大值(max);
- 区间最小值(min);
- 其他。
当然,这种问题大家也可以用别的方法来做,比如: