其他分享
首页 > 其他分享> > 树上分治

树上分治

作者:互联网

1. 点分治

现在有一棵大小为 \(n\) 的树,要求出路径长度小于 \(k\) 的路径。

每次可以通过选择重心的方式,将整棵树分为一堆不大于 \(\dfrac{n}{2}\) 的子树,所以将整棵树分为大小为 \(1\) 的子树需要 \(\log n\) 次。

对于现在求出重心的子树,显然有三种情况可以组成一条路径。

  1. 路径两端点均在某一子树内
  2. 路径两端点在不同子树内
  3. 路径某一端点为重心

标签:两端,子树,重心,整棵树,分治,路径,树上
来源: https://www.cnblogs.com/yzh-error502/p/16519091.html