点分治一般用来处理树上路径信息问题
分治
不断解决子问题,常见的套路是 n 个问题,分成 2 个 n2 的问题…..,不断缩小问题的规模,进而求解。
一般用到调和级数 nlogn。
点分治
解决步骤
- 寻找树的重心:降低复杂度。
- 求解经过当前子树的重心的满足要求路径数量。
- 不断递归求解子问题。
时间复杂度
O(nlog2n)
代码
1 |
|
Success and failure are temporary.
点分治一般用来处理树上路径信息问题
不断解决子问题,常见的套路是 n 个问题,分成 2 个 n2 的问题…..,不断缩小问题的规模,进而求解。
一般用到调和级数 nlogn。
O(nlog2n)
1 | #include<cstdio> |