浅谈树上倍增
浅谈树上倍增
本篇随笔浅谈一下树上倍增。
一、倍增的概念
关于倍增的概念,蒟蒻有专门的博客讲解:
二、树上倍增的概念
有人会说,树上倍增也没有递推啊,啥叫树上倍增啊。
树上倍增一般是优化枚举位置。
比如对于一棵树的链上统计操作。对于任意两点间的链路径,暴力统计的话会一个点一个点地遍历,但是如果我们使用树上倍增的话,就可以成2的整数次幂来遍历。大大降低了复杂度。
和倍增相同,树上倍增也是运用了类似动态规划的思想。
设置\(f[i][j]\)表示\(i\)与它的\(2^j\)祖先上的路径上需要维护的信息。然后在维护的时候进行和倍增一样的转移即可。
树上倍增的经典应用是求LCA。
具体模板可见: