![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
主席树
DOFYPXY
这个作者很懒,什么都没留下…
展开
-
[BZOJ3932][CQOI2015]任务查询系统 主席树
强制在线。把一个任务在Si加入,Ei+1删除,变成询问单点前K小,建可持久化权值线段树即可。 错点:并不用相同的离散化成一个值, 直接排序分1,2,3…即可,要不然很多相同的数询问就会挂。 建树的时候每个操作都要重建一条链,把该时间点操作做完后再给rt赋值。 代码:#include<iostream> #include<cstdio> #include<cstring> #include<al原创 2017-10-19 22:14:34 · 296 阅读 · 0 评论 -
[BZOJ3585][清华集训2014]mex 主席树
考虑用主席树维护到第i个位置时,每个数最后一次出现位置,也就是说维护的是n棵权值线段树,线段树上每个节点表示值域在此之内的每个数最后一次出现位置的最小值。 那么一个询问(l,r)就是在第r棵线段树上查最小的且上一次出现位置小于l的数,经典操作。 注意离散化的时候要把每个值和它+1扔进去离散化,而且要去重,因为不能破坏整数的连续性。 代码:#include<iostream> #include<原创 2017-12-12 20:42:55 · 410 阅读 · 0 评论 -
[联合集训6-25] 蓝雨 线段树+主席树+hash
先考虑p=qp=qp=q的情况,习惯先把求第kkk大变成求第kkk小。 那么我们逐个确定第kkk小的串每种数字包含了多少个。假设当前我们已经确定了x−1x−1x-1之前的数的个数,此时对于每个左端点iii,合法的右端点都是一个区间[li,ri][li,ri][l_i,r_i]。现在考虑二分确定xxx的个数,我们把序列中为xxx的位置单独挑出来,这些位置把序列分成若干段,假如二分有midmidmi...原创 2018-06-26 20:46:05 · 387 阅读 · 0 评论