随笔分类 - 数据结构 ————————树链剖分
摘要:经过了一系列的前置知识,终于学会了树链剖分!! 重链剖分的思想: 重链剖分可以将树上的任意一条路径划分成不超过$O(logn)$条连续的链,每条链上的点深度互不相同(即是自底向上的一条链,链上所有点的$LCA$$为链的一个端点)。 重链剖分还能保证划分出的每条链上的节点$DFS$序连续,因此可以方便
阅读全文
摘要:定义: dfs序:每个节点在dfs深度优先遍历中的进出栈的时间序列。 性质: dfs序可以把一棵树区间化,即可以求出每个节点的管辖区间。 对于一棵树的dfs序而言,同一棵子树所对应的一定是dfs序中连续的一段。 code: void dfs(int x,int fa){ in[x] = ++cnt;
阅读全文
摘要:树上差分 树上差分,就是利用差分的性质,对路径上的重要节点进行修改(而不是暴力全改),作为其差分数组的值,最后在求值时,利用$dfs$遍历求出差分数组的前缀和,就可以达到降低复杂度的目的,可以应用于求对树上的一段路径进行操作,并询问某个点或某条边被经过的次数 点差分 设将两点$u$,$v$之间路径上
阅读全文

浙公网安备 33010602011771号