线段树学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线段树学习笔记相关的知识,希望对你有一定的参考价值。

线段树,顾名思义就是用来存储线段的结构。利用这个,我们可以将一个线段(区间)上的统计问题在log2n时间内解决

这里以n为2的幂的情况做讨论

 

线段树的层数最多为log2n层:线段树的叶子节点表示的是一个『点』,那么n,每次除以二,显然在第log2n层会变成叶子节点,所以层数只会有log2n层

每个线段可以被分为2log2L条:考虑查询的连续性,如果你在某一层取得两个结点,它们肯定是不相邻的,显然我们取不到同一层的第三个结点,所以每个线段可以被分为2log2L条

 

Lazy-tag技术:应对区间修改的最好方法? 如果对于一个一个点修改,显然是太慢了,那么我们对于要修改的区间,把他拆分成log条,然后给每条对应的结点打上一个Lazy-tag:"这个区间被统一加上了多少"。当我们在某种情况下访问到了一个还有Lazy-tag的结点,把它的Lazy-tag分享给左右孩子,清零,这样保证了时间复杂度不退化

2016.3.6

以上是关于线段树学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

ACM学习笔记:线段树

[学习笔记]主席树

关于线段树的一些学习笔记——(无限施工中)

线段树 学习笔记

主席树学习笔记

学习笔记::lct