线性时间的极小极大树及其应用与平面双连通性增强问题
线性时间构建极小极大树
在处理具有 $n$ 个实权重的多重集 $W$ 时,我们可以在 $O(n)$ 时间内为其构建一个极小极大树。下面详细阐述其构建过程:
- 初始化 :在开始搜索 $x_i$ 之前,我们用 $O(n)$ 时间设置 $S_1 = \sum_{j} \frac{1}{2^{\lceil|w_j|\rceil}}$。
- 每一轮操作 :在第 $r$ 轮中,维护不变量:在第 $r$ 轮开始时,$S_1 = \sum_{j} \frac{1}{2^{\lceil|w_j|\rceil}} + \sum_{0 < x_j < \min(X_r)} \frac{1}{2^{\lceil|w_j|\rceil}}$ 且 $S_2 = 0$。接着,用 $O(|X_r|)$ 时间设置 $S_2 = \sum_{\min(X_r) \leq x_j \leq x_m} \frac{1}{2^{\lceil|w_j|\rceil}}$。
- Kraft 不等式测试 :由于 $S_1 + S_2 = \sum_{j} \frac{1}{2^{\lceil|w_j|\rceil}} + \sum_{0 < x_j < \min(X_r)} \frac{1}{2^{\lceil|w_j|\rceil}} + \sum_{\min(X_r) \leq x_j \leq x_m} \frac{1}{2^{\lceil|w_j|\rceil}} = \sum_{x_j \leq x_m} \frac{1}{2^{\lfl
超级会员免费看
订阅专栏 解锁全文
1118

被折叠的 条评论
为什么被折叠?



