多点到根的链合并点集问题

现在有一棵树,和给定的 \(k\) 个点,我们需要维护对于给定的每个点到根的路径的信息,并且一个点只能算一次贡献

  • 首先将所有的点按照 \(dfs\) 序排序

  • 对于 \(1\leq k\leq n\)\(a_i\) 到根的路径全部 +1

  • 对于 \(1\leq k<n\)\(\operatorname{lca(a_i,a_{i+1})}\) 到根的路径全部 -1

  • 那么现在就是个 路径加+单点求值 的问题,可以通过差分转换成 单点加+子树求和 ,然后再通过数据结构维护

posted @ 2022-06-06 12:53  Kzos_017  阅读(31)  评论(0编辑  收藏  举报