随笔分类 - 数据结构 - 树链剖分
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3083 换根后路径还是不变,子树分类讨论一下,树剖后线段树维护即可。 代码如下:
阅读全文
摘要:题目:http://codeforces.com/contest/504/problem/E 快速查询LCP,可以用后缀数组,但树上的字符串不是一个序列; 所以考虑转化成序列—— dfs 序! 普通的 dfs 序中,子树是一段连续的区间,而这里要查询的是链,自然想到树链剖分后的 dfs 序; 这样一
阅读全文
摘要:题目:http://codeforces.com/contest/1009/problem/F 也可以用 dsu on tree 的做法,全局记录一个 dep,然后放进堆里,因为字典序要最小,所以再记一个第二关键字 dep[u]; 长链剖分是 O(n) 的,因为如果 O(1) 继承重儿子(长儿子),
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2238 看了半天... 首先,想要知道每条边删除之后的替代中最小的那个; 反过来看,每条不在 MST 上的边如果加入,会对一条路径产成影响,具体来说,就是这条路径上的所有边在被删除后,可以考虑用
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2836 树链剖分裸题; 写码五分钟,调码两小时,RE不断,狂交二十五遍,终于找到一处小细节——易错点! 就是跳 top 时,不是按 dep[x] < dep[y] 交换 x,y,而要按 dep[
阅读全文
摘要:题目:https://www.luogu.org/problemnew/show/P3398 树链剖分一下,路径就变成线段树上的几个区间; 两条路径相交就是线段树上有区间相交,所以在相应位置打个标记,查询有无标记即可; 一开始是打1的标记,查询后就减去,查询 sum 是否为 0 即可; 然而这样写却
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4034 树剖裸题; 一定要注意 long long !!! update 的时候别忘了 pushdown ... 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4196 树链剖分。 代码如下:
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3626 思路很巧妙,把区间换成前缀和相减; 把 l ~ r 到根路径上的点的点权都+1,然后 z 到根求和,就是 z 与 l ~ r 每个点 lca 深度的和; 这里若要用前缀和,则需要把询问离
阅读全文
摘要:题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4811 因为位运算的结果有可合并性,所以可以树链剖分,线段树维护; 细节很多,特别要注意从左往右运算和从右往左计算是不同的,在不同条件下一定要区分!!! 这篇博客写得很好(我就是模仿它写的):h
阅读全文

浙公网安备 33010602011771号