- 博客(1)
- 收藏
- 关注
原创 LCA---倍增法(也许后续会出tarjan法)
首先我们需要fa[N][20],depth[N],p[N]数组,fa数组是用来倍增的,也就是存储该结点的祖先(包括它的父亲和爷爷),depth数组是存储当前结点的深度,我们把根节点的depth定为1,p数组用来模拟队列。比如这张图我要找9和10的祖先,那么先对齐深度,9结点变成5结点,那么发现这两个的父节点不相同,那么此时同步跳跃就发力了,他会将10结点和5结点同步跳跃,也就是每次执行他两深度不变,直到找到最近祖先2,那么就停止。
2025-03-22 10:13:01
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人