1. 点分治
现在有一棵大小为 \(n\) 的树,要求出路径长度小于 \(k\) 的路径。
每次可以通过选择重心的方式,将整棵树分为一堆不大于 \(\dfrac{n}{2}\) 的子树,所以将整棵树分为大小为 \(1\) 的子树需要 \(\log n\) 次。
对于现在求出重心的子树,显然有三种情况可以组成一条路径。
- 路径两端点均在某一子树内
- 路径两端点在不同子树内
- 路径某一端点为重心
标签:两端,子树,重心,整棵树,分治,路径,树上
来源: https://www.cnblogs.com/yzh-error502/p/16519091.html