倍增法求LCA
LCA就是最近公共祖先的意思,比如这个图这个图中10 和 9 的最近公共祖先就是7这个图中4 和10的最近公共祖先就是1那么我们到底怎么来求最近公共祖先呢?有两种方法来求最近公共祖先,1是倍增法,2是tarjan,这是一种离线算法,由于本人比较弱,所以只会第一种算法(主要是害怕弄混了,因为图的强连通分量里面会学另一个tarjan算法,还是自己比较弱)倍增法里面有一个很重要的数组f[x,k],表示x往上跳2k2^{k}2k步所能够到达的点,拿上面的图举例子f[10,0] = 8,f[10,1]
原创
2020-10-07 20:44:31 ·
678 阅读 ·
0 评论