Exeabow_sky

点分治

树上路径统计或最优化。(无根树)

找重心,分别考虑子树,标 vis。复杂度 O(nlogn)

路径合并信息。

对于较多次的查询可以用点分树;或离线,一次点分治处理完。

[CSP-S2022 T4]

也可点分治。

对于 k=2,对链在点分治中维护信息,离线;对分治中心 h,对两子树中点 a,b,做 like-DP,在一次 DFS 中算出,再算出答案。

但对于 k=3 呢?稍微预处理一下,做细节上的处理。

边分治

同样是找重心。但要做一些特殊处理,加入一些 0 权边与虚点(转二叉树)。

感觉不如点分治

长链剖分

x 的子树中距离 x 距离为 d 的个数。长剖优化 DP。

jrjyy

开区间线段树

ST 表

std::__lg 很快,不用预处理。

topo

反图 dfs 的出栈序为 topo 序。

DFS 序求 LCA

线性空间线段树分治

posted on 2023-08-20 10:03  Zaunese  阅读(29)  评论(0编辑  收藏  举报