最近在做一道 Kruskal 重构树的题,然后我突发奇想能不能对一棵树建 Kruskal 重构树,然后 valLCA(u,v) 就是 u,v 之间的路径上的最大值。然后可以用 Tarjan LCA 和线性树上并查集做到 O(n)−O(1) 的预处理 - 查询复杂度。然后貌似就可以有个树链上的 RMQ 的 O(n)−O(1) 的算法。不知道有没有人提出过这个东西?如果有出处有大佬可以告诉我我去学习一下吗?感谢。
参考:https://ljt12138.blog.uoj.ac/blog/4874。