
主席树
文章平均质量分 78
w-y-p
这个作者很懒,什么都没留下…
展开
-
poj-2104(主席树)
主席树,函数式线段树。新建的线段树相对前面的改变较少,建树时便可充分利用与前面重叠部分的空间,在新加入节点时便只需开辟需要改变的树节点。第i个线段树代表了原数列前i个数的存储,所以在求解原数列任意l~r区间的第k小值问题时,通过sum[r].l-sum[l].l的值与k比较即可知道该值在左或右区间,逐步缩小区间便可。很好的数据结构。题意:给一段序列和m个询问,问l~r区间的第k小数原创 2015-08-25 15:11:55 · 408 阅读 · 0 评论 -
zoj-2112(主席树动态求区间第k小数)
总算是把动态求区间第k个数的算法看明白了。在主席树的基础上,如果有修改操作,则要通过套树状数组来实现任意区间求第k小的问题。刚开始看不明白什么意思,现在有一点理解。树状数组的每个元素是一个线段树,来维护修改后的前后缀和,树状数组能在log时间内更整个数组,现在用相同的方式更新整个线段树数组,每次更新一个点时,要更新这个点代表的整个线段树。同样的,求和时用一个use数组记录所要更新的点的下标原创 2015-08-25 19:30:14 · 2457 阅读 · 1 评论 -
SPOJ COT Count on a tree(树上路径第k小 主席树)
题意:求树上A,B两点路径上第K小的数分析:同样是可持久化线段树,只是这一次我们用它来维护树上的信息。我们之前已经知道,可持久化线段树实际上是维护的一个前缀和,而前缀和不一定要出现在一个线性表上。比如说我们从一棵树的根节点进行DFS,得到根节点到各节点的距离dist[x]——这是一个根-x路径上点与根节点距离的前缀和。利用这个前缀和,我们可以解决一些原创 2015-08-26 15:57:43 · 799 阅读 · 0 评论