
主席树
GEOTCBRL
?????
展开
-
【bzoj2724】[Violet 6]蒲公英
坑了好久的区间众数…… 思路是分块。 设块的大小为ll,有xx个块 预处理第i个块和第j个块之间的众数和出现次数,这是O(xn)O(xn)的。 对于每个询问[l,r][l,r],如果l和r在同一个块里面,就暴力查询,这是O(l)O(l)的;如果不在同一个块,则先以预处理的信息得到中间连续的块的答案,然后再在最两边的两个块暴力查询每个数在中间出现的次数,然后更新答案。偷懒没多想原创 2015-11-18 20:39:02 · 1219 阅读 · 0 评论 -
【bzoj3123】 [Sdoi2013]森林
被教做人啦T_T 维护树上的主席树。 查询u,vu,v,那么对应的当前版本是u,vu,v,前驱版本是lca(u,v),fa[lca(u,v)]lca(u,v),fa[lca(u,v)]。 连u,vu,v,因为保证是一棵树,于是启发式暴力合并,每次重新建主席树。 时间复杂度O(Tlog2n)O(T\log^2 n)。 几个要注意的地方。 第一个读入的testcase原创 2015-11-20 23:51:32 · 826 阅读 · 0 评论 -
【 bzoj 3514 】Codechef MARCH14 GERALD07加强版 - LCT
题意简单明了。。。 考虑从头开始加边。如果还是一棵树的时候,加入了一条边会怎么样。 如果还是树就不鸟他。 但是如果构成了环,那么这个环要存在的必要条件显然是最早的边要存在。(当然这个环上的其他边也要存在,但这不重要,因为如果最早的边存在了,这些边肯定会存在),如果将当前边设为EjE_j,这个环上标号最小的边设为EiE_i,那我们称EjE_j依赖于EiE_i。因为如果当前是棵树的情况原创 2016-01-21 16:48:56 · 1122 阅读 · 2 评论 -
【 bzoj 4299 】 Codechef FRBSUM - 主席树乱搞
一眼看status吓得我还以为是分块。。。其实是水题。 考虑给定一个集合,如何得到FRBSUM。 按某种顺序从集合中取数,设之前取的数可以取到的最大值为mxmx(雾)且[1,mx][1,mx]都可以取到,然后现在新加了一个数xx,如果x≤mx+1x\leq mx+1,那么最大值可以由mx扩到mx+limmx+lim,同时(x,mx+lim)(x,mx+lim)内的数显然也可以得到。而如果原创 2016-01-21 17:01:30 · 1929 阅读 · 0 评论 -
【Codeforces 597C】 Subsequences - DP 主席树
题意:给一个长度为n的排列,求长度为k+1的上升子序列个数。 很显然的DP,f[j][i]f[j][i]表示到了第i位,取了长度为j的序列。 f[j][i]=∑a[k]<=a[i]f[j−1][k]f[j][i]=\sum_{a[k]<=a[i]} f[j-1][k],边界为f[0][k]=1f[0][k]=1。 用个主席树随便滚动地维护一下前缀和就好。 关于上升子序列系列的问题原创 2015-12-21 21:16:20 · 811 阅读 · 0 评论