https://www.luogu.org/problemnew/show/P3302 看到查询第 k 小,而且是一颗树,可以联想到在树上的主席树,a 和 b 路径中第 k 小可以通过在 a, b, lca(a, b), fa[lca(a, b)] 四个节点对应的主席树上二分得到 实现主席树是很简单的,连接两个点可以启发式合并,现在最大的问题是连接两个点后还要高效的求出 LCA,一种做法是启发式合并的时候重构倍增数组,也有一种用 LCT 维护 LCA 的方法,相对简单.博主的实现是后者 需要注意…