Loading

[笔记] 虚树

对于一棵较大的树,在保留关键点和树的形态的前提下,使用尽量少的节点数目。

虚树的构建

算法1
  • 将关键点按 dfn 序排序;
  • 遍历一遍,任意两个相邻的关键点求一下 LCA,并且哈希表判重;
  • 然后根据原树中的祖先后代关系建树。
算法2
  • 加入所有关键点的 LCA 作为虚树的根;
  • 将关键点按 dfn 序排序;
  • 当前节点与栈顶的 LCA 是栈顶,当前节点入栈;
  • 否则弹栈直到栈顶的深度不大于 LCA,别忘了连边;
  • 若栈顶不是 LCA,LCA 入栈,再把当前节点入栈。
posted @ 2022-03-03 16:33  IrisT  阅读(27)  评论(0编辑  收藏  举报