https://www.bilibili.com/video/av16552942?from=search&seid=13163420448884679920
一、线段树
1.线段树
维护区间信息(可合并性)
合并区间信息
单次操作时间复杂度O(logn)
单次空间复杂度O(n)
2.线段树存储方式
(1)堆式存储
(2)节点存储
strcut Node{int sumv,lc,rc}
二、权值线段树
- 维护全局的值域信息,每个节点记录的是该值域的值出现的次数。
- 用了二分的思想。
- 支持查询全局K小值,全局rank,前驱、后继等。
- 单次操作时间复杂度是O(log n)
- 空间复杂度是O(n)
- 相对于平衡树的优势:代码简单、速度快。
- 劣势:值域较大(10^9),需要离散化,就变成了离线的数据结构