随笔分类 - 树链剖分
摘要:题解:用树链剖分来维护树链剖分 令d[x]=size[heavyson[x]]-size[lightson[x]] 当d[x]<0时轻重儿子关系改变 用数据结构维护d[x]并找到这些位置改变即可 时间复杂度O(不会分析)
阅读全文
摘要:题解:树链剖分一下 对线段树每个节点维护双堆,支持插入删除 对于每一条请求,给这个请求没经过的点加入这个值,共logn个区间 查询就是线段树上的单点查询
阅读全文
摘要:题解: 解法1: 树链剖分一下,对每条链建立一颗Splay 以宗教为第一关键字,深度为第二关键字建立 查询相当于Splay的一个区间 修改相当于删除一个节点,加入一个节点 O(nlog^2n) O(n); 解法2: 树链剖分一下,对每条链建立maxc棵权值线段树,动态开点 O(nlog^2n) O(
阅读全文
摘要:题解: dep[LCA(a,b)]等价于把a到根路径+1,然后询问b到根路径的权值 按左右端点分别排序求出值后作差就可以了 分块TLE了QWQ LCT代码 分块代码
阅读全文
摘要:题解:动态树,维护Splay最深的被标记过的点 每个询问先Access(x); 当然用树链剖分也可以
阅读全文
摘要:题解: 树剖,线段树维护区间颜色段数 记录两端点的颜色,做到O(1)合并 问题: 非递归建树实现
阅读全文
摘要:算法:LCA,树上差分+(乱搞) 如果有写错的地方请大佬更正 对于100%数据: u表示起点,v表示终点 对于一条u到v的路径,先讨论LCA!=u&&LCA!=v的情况: 分为u到LCA的路径和LCA到v的路径 对于u到LCA的路径上的点x,当deep[u]-deep[x]=w[x]时,即w[x]+
阅读全文

浙公网安备 33010602011771号