可持久化线段树
空灰冰魂
=NULL
展开
-
【BZOJ3439】Kpm的MC密码 Trie+dfs序+可持久化线段树
题解: 咳咳。首先补全数据范围:对于100%的数据,1 然后乍一看题(BZ少数据范围),直接排个序,然后插入点信息来一发可持久化线段树求区间第K大、 显然存不下,那么我们可以用Trie存一下这些字符串,然后dfs序扫一遍,确定一个字符串的可查询范围。 话说用Trie树存的是反串(后缀么) 呃,今天生病了,有点犯浑,语文能力可能下降了许多。。 所以还是看代码吧。 完了我原创 2015-01-15 22:05:07 · 1666 阅读 · 0 评论 -
【POJ2104】K-th Number 主席树?函数式线段树?可持久化线段树?……反正是其中一个
可持久化线段树的模板题/理解题。原创 2014-12-12 08:40:19 · 1764 阅读 · 0 评论 -
【BZOJ2006】【NOI2010】超级钢琴 Heap+主席树
NOI2010超级钢琴。Heap+主席树原创 2014-12-12 17:14:24 · 1187 阅读 · 0 评论 -
【BZOJ3932】【CQOI2015】任务查询系统 可持久化线段树
题解: 首先肯定要用线段树。 如果没有强制在线,那么直接把询问排个序然后按秩插入、删除、查询。普通线段树就好了,但是这道题强制在线,就需要可持久化线段树了。 线段树的每个区间记录[x:这段区间有的权值总和]、[n:这段区间有多少个权值][x:这段区间有的权值总和]、[n:这段区间有多少个权值] 然后每个版本表示一个时间点的线段树。 这道题每个版本可能有多个节点被修改,所以我们可以先当成多原创 2015-04-08 10:44:20 · 1681 阅读 · 0 评论 -
【BZOJ2588】【Spoj 10628.】 Count on a tree 可持久化线段树+lca
题解: 对于每个树上节点存一个版本的可持久化线段树,为它到根节点上所有权值的权值线段树(需要离散化)。 然后对于每次询问,这条链(a,b)的线段树就是:线段树a+线段树b−线段树lca−线段树falca线段树_a + 线段树_b - 线段树_{lca} - 线段树_{fa_{lca}} 然后线段树上求第k小啦。 代码: #include #include #include原创 2015-04-14 22:05:17 · 2361 阅读 · 0 评论 -
【BZOJ3207】花神的嘲讽计划Ⅰ hash+可持久化线段树
题解: 首先因为嘲讽长度固定,所以我们可以给每个点固定一个hash值(不固定的话我还真不会做)。 然后用可持久化线段树实现一段区间内有哪些数,然后查询一段区间是否有要的那个数就行了。 代码: #include #include #include #include #define N 401000 #define LOGN 20 #define base 107 #define原创 2015-05-13 08:13:06 · 1493 阅读 · 0 评论