关于 Lca 的结论
给定一棵有 \(n\) 个节点树和 \(m\) 个点 \(a_1, a_2, \dots a_m\),求 \(Lca(a_1, a_2, \dots a_m)\),即这 \(m\) 个点的最近公共祖先。
结论1
求出每个点的 \(dfs\) 序 \(dfn_x\) (任意一种均可),然后求出这 \(m\) 个点中 \(dfs\) 序最小的点 \(x\) 和最大的点 \(y\),答案为 \(u = Lca(x, y)\)。
结论2
答案为 \(Lca(a_1, a_2), Lca(a_2, a_3) \dots Lca(a_{m - 1}, a_{m})\) 中深度最小的。
这个结论看起来没有用,但是当 \(a_1 \sim a_m\) 是一段连续的区间时就很有用了。
浙公网安备 33010602011771号