文章目录
一、线段树是什么?
线段树是一种二叉搜索树,将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。这样,我们就可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。由于最底层有n个叶子节点,共有1+2+4+16+...+n个区间,等比数列求和得4n-1,所以需要四倍空间
![](https://i-blog.csdnimg.cn/blog_migrate/a84077a2af5ec925e45b3229ea82fd6a.png)
二、常见模板
1.建立(初始化)
struct Tree{
int zuo,you;//左右端点
int daest;//本题求最大值
int lazytag;//是线段树维护时间复杂度的核心
}t[4*Maxn];//四倍空间
inline