树链剖分
suclliant
流年笑掷 未来可期
展开
-
树链剖分
树链剖分 将树的所有节点按照dfs序组织成线性的链,然后就可以使用线段树来处理这个线性链,这样就可以将原来树上的一些操作转换成线段树上的操作。(注:也可以使用其他数据结构来处理,比如树状数组。到底用什么需要视情况而定,这里附上我之前一篇关于树状数组的博文:树状数组) 简要描述: 1.由于子树中所有节点的编号都是连续的,所以对子树的操作就可以直接转换成对线段树中的一个区间的操作。 2.如果要...原创 2019-08-16 16:23:32 · 91 阅读 · 0 评论 -
LCA(使用树链剖分)
最近刚好学了树链剖分,来一道LCA的模板题练练手:P3379 最近公共祖先(LCA) 题意:给一棵多叉树,m次询问,求两个节点之间的LCA。 思路:树链剖分。 #include <bits/stdc++.h> #include<cstring> #define L(x) (x<<1) #define R(x) (x<<1|1) #define...原创 2019-08-16 19:57:18 · 169 阅读 · 0 评论