码迷,mamicode.com
首页 > 其他好文 > 详细

【线段树】学习笔记

时间:2016-03-06 19:17:02      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:

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

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

 

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

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

 

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

2016.3.6

【线段树】学习笔记

标签:

原文地址:http://www.cnblogs.com/oierforever/p/5248161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!