“其中 $m$ 是当前边数。这里显式为每个顶点建立各层的 Euler Tour Tree记录,并选用支持最坏对数时间 split/join 的确定性平衡序列;$O(\log n)$ 份重叠森林…”
形式陈述
表示不变量
为实现动态森林问题的 link、cut 与连通查询,对 represented forest 中每棵无向树
每棵树的循环 tour 从任意位置切开,存入支持以下操作的动态序列容器:
叶按 tour 顺序排列,内部节点维护大小和幺半群摘要。以下时间界假设摘要占常数字且合并为常数时间;实际输出长序列时还须计输出成本。结构树只是序列容器;它的父子关系不是 represented tree 的父子关系。每个 represented 顶点或有向边保存指向其叶出现的句柄,以便在
选定实现下的复杂度
一种实现使用隐式随机 Treap:中序位置充当键序,split 按子树大小定位切分点,节点位移不需要逐个重写数值键;各出现节点的独立随机优先级在其生命周期内固定。对任意预先固定的合法操作序列,split/join 的期望时间为
- 预处理与空间:
; - reroot、link、cut:期望
; - connected:比较两处 marker 所在序列根,期望
; - component aggregate:找到序列根后读取摘要,期望
。
这里的期望来自随机优先级,而非输入图分布。若对手能观察优先级并自适应构造操作,需重新说明随机保证或改用确定性平衡序列。
reroot、link 与 cut
Euler tour 是循环序列,改变 represented root 只需旋转序列,并更新显式保存的根身份。若顶点
设
的顺序 concatenate。两个新叶分别代表同一无向边的两个方向。link 前必须检查分量不同,否则结果不再是森林,Euler-tour-tree 的单 tour 不变量失效。
删除
切边为何正好得到两个分量
树边
这条“桥的两次出现夹住一个分量”的不变量,是 cut 能用常数次 split/join 完成的原因;一般含圈图的边没有该性质,必须由外层动态图算法挑选生成森林。
直觉
树边是桥,Euler 环游经过它去往一侧后,只能从反向出现返回。两个有向出现因而像一对括号,把删边后的一整个分量夹在中间;平衡序列上的切分、旋转与拼接,正好对应 represented forest 的 cut、reroot 与 link。
例子与边界
具体例子:切开一条树边
考虑树边
某个循环表示可含片段
删除
聚合中的重复计数
顶点会在 Euler walk 中多次出现。若每个出现都存同一顶点权值,分量和会按度数重复计数。常见修复是只让每个顶点的专用 marker 贡献权值,所有有向边出现贡献单位元;若运算交换,这样序列根摘要就是与环游起点无关的分量顶点聚合。一般非交换运算也能维护序列摘要,但结果依赖当前 tour 顺序,reroot 的旋转会改变它;不能把它称为无序顶点集合的固有聚合。边聚合则可只让一对有向出现中的指定代表贡献,或按需求设计可抵消编码。
静态 DFS preorder 中子树是一个连续区间;动态无向 Euler tour 的主要语义却是整棵分量的循环表示。若固定根并精心安排 entry/exit marker,可扩展某些子树查询,但 reroot、link 与 cut 会改变区间语义,必须单独证明。
推论与应用
Euler Tour Tree 先用树的 Euler Tour 技巧把一棵树展开成可切分、拼接的访问序列,再由平衡序列结构实现 link/cut。顶点可能在序列中重复出现,聚合函数必须据此校正重复贡献。
失败边界与 Link–Cut 对照
ETT 能直接判断分量、维护分量摘要,并作为 全动态连通性的生成森林容器。任意两点简单路径在循环 tour 中通常不是一个连续片段,所以路径最大值或路径乘积不如 Link–Cut Tree直接。
结构只维护森林。若外层图含非树边,ETT 可以保存选定生成森林,却不会自动寻找删树边后的 replacement edge;这正是全动态连通性算法需要额外层级和边集合的原因。
参考资料
- Monika R. Henzinger and Valerie King, “Randomized Fully Dynamic Graph Algorithms with Polylogarithmic Time per Operation,” Journal of the ACM 46(4), 1999.
- David Eppstein, Zvi Galil, Giuseppe F. Italiano, and Amnon Nissenzweig, “Sparsification — A Technique for Speeding Up Dynamic Graph Algorithms,” JACM 44(5), 1997.
- Erik D. Demaine, MIT 6.851 Advanced Data Structures, lecture notes on Euler-tour trees and dynamic forests, accessed 2026.