LCA(最近公共祖先)
欢迎在评论区留言和订阅专栏!
LCA(Lowest Common Ancesto) 就是今天的主角,又叫最近公共祖先,用来求两个节点的最小父节点。
1.简介
LCA算法是一种倍增算法,分为3个步骤:遍历深度与父节点、倍增初始化和LCA主函数。
2.代码
1.遍历深度与父节点(附main函数调用方式)
int n, m, s, f[100005][33],dep[100005];//倍增数组和深度数组
vector<int> a[500005];//结点vector
void dfs(int u, int fa){
f[u][0] = fa;
dep[u] = dep[fa]+1;
for (int i = 0; i < a[u].size(); i++){
if (fa != a[u][i]) dfs
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
c++算法大全 文章被收录于专栏
本专栏收集了c++大部分基础算法,附有简介和代码。