主席树进阶(个人笔记13)

柒葉灬

2018-12-05 16:43:58

Personal

## 主席树专题后总结 ------ #### 基础 主席树就是很多棵线段树,通过每两棵线段树差别不大来节省空间。 最基础的题:区间求第K大值(没有修改)。$O(nlogn)$ ------ #### 进阶 稍微难一点就是:带修主席树。 我们知道,基础的主席树是一个前缀和,那么,我们希望单调修改后,后面的前缀和也一起更改,想到**树状数组套主席树**。 这也算是树套树入门的题目:区间求第K大值(带修改)$O(nlog^2n)$ ------- #### 活用 题目不可能给你像区间K大值这样的裸题,所以我们要明白什么样的题目可以用主席树。 主席树核心的思想就是**可持久化**。 所以遇到那种**修改之后还询问之前的**,那么就可以考虑能否用主席树了。 或者是遇到希望**开很多棵线段树**的,就可以考虑主席树了。 ------- #### 技巧 主席树重点是明白根是什么,**存下标还是存数值**,有些题目弄懂这些就解决了。 还有节点开多大也很重要,开小了会RE,大了不测会MLE,不要以为主席树省的空间可以无限使用。(**用主席树一定要测空间**) 主席树根如果是下标的话,在不能保证空间的情况下不要开1-1e9的范围,最好把数值离散化后再算。 一定要注意左端点是0还是1,有时候求区间可能会开到0 -------