随笔分类 - 线段树合并
摘要:两个状态的最长公共后缀是他们在parent树上的LCA 那么将串反过来就是LCP了 二分答案,找到d所在状态的parent树上最高的节点,且那个节点的最大长度大于等于二分的值 这个倍增即可 这个状态的right集合最大,再查看right集合中是否存在 a, b 之间的某个位置即可 用线段树合并维护r
阅读全文
摘要:支持离线 边和询问都按权值排序,然后扫描线对每一条边进行处理,将小于等于当前询问权值的边进行处理 加入一条边相当于合并两个连通块,用并查集维护根,线段树合并两个根处的线段树即可 查询就在根查询权值线段树的第 $k$ 大 把递归版的线段树换成循环的trie的写法,跑得更慢了。。
阅读全文
摘要:计算序列的逆序对,交换相邻两个位置只会影响它俩是否产生逆序对,和其他位置的大小关系无关 交换相邻两段同样只影响这两段之间形成的逆序对 那么对每一个节点开一棵权值线段树,维护它的子树内有哪些权值 然后线段树合并,将两个儿子的线段树合并到父亲的身上 合并左右的时候就考虑会怎样产生逆序对 假设左儿子为 $
阅读全文
摘要:并查集加线段树合并 直接对两个集合的根合并,查询也在并查集的根上查,这样就不需要可持久化了
阅读全文
摘要:关于维护每个节点子树里某些东西的手段有:转化为dfs序的一个区间、dsu on tree(树分块?树上莫队?) 还有一个就是线段树合并 这个题就很nb 对每个节点开两个权值线段树 第一个线段树维护每个深度出现的颜色种类数,每种颜色只在最浅深度起贡献 第二个线段树维护每种颜色出现的最浅深度 维护方法就
阅读全文
摘要:[传送门] 题目即求所有的三元组,相对大小关系同 $p_1,p_2,p_3$。 题解说都很清楚,这里写一下过程整理一下思路。 如果我们枚举中间这个元素,那么就是统计子树内外有多少个大于这个数和小于这个数的个数。 假设$a_1$,$a_3$的$LCA$不是$a_2$,那么就是一个在$a_2$子树内一个
阅读全文

浙公网安备 33010602011771号