![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
主席树
蔡于飛
SUSTech
ACMer
展开
-
HDU 6621 K-th Closest Distance 主席树+二分
K-th Closest Distance这是一道简单的主席树题,思维难点在于是否想到二分。因为是要求区间[L, R]下标对应数列中的|p-ai|第k小值,如果我们设|p-ai|=x,我们只需保证区间[p-x, p+x]中正好有k个值,且p-x或p+x存在。二分答案x,将问题转化为判定性问题。我们发现,满足上述条件的x必是满足“区间[p-x, p+x]中有k个值”这一条件的x的最小值,...原创 2020-02-10 18:55:12 · 203 阅读 · 0 评论 -
HYSBZ 2588 Spoj 10628. Count on a tree 树链剖分+主席树
Spoj 10628. Count on a tree需要求一棵树上两点之间的第k小点权。“第k小”想到主席树,“树上两点之间”想到树链剖分。我们先对这棵树进行轻重链剖分,得到每一条重链的顶端、各结点从属的重链等信息。树链剖分完成后,下面考虑如何建立树上主席树:我们把每个结点在其父结点的基础上建立主席树即可。所以,在树链剖分的第二次DFS中,我们可以建立好主席树。下面考虑如何在主...原创 2020-02-10 18:28:41 · 181 阅读 · 0 评论 -
HDU 6704 K-th occurrence 后缀数组+二分+主席树
C - K-th occurrence很好的后缀数组题,训练时因为还不会后缀数组,故未做,学习后缀数组后独立写出。首先第一个问题是如何找出给定子串所有出现的位置。显然,l就是给定子串的首位置,而这个子串其他出现的位置一定是sa[rank[l-1]], sa[rank[l-2]], …或sa[rank[l+1]], sa[rank[l+2]], …即我们需要找到一个[L,R]使得sa[i]...原创 2020-02-06 16:35:58 · 215 阅读 · 0 评论