洛谷 P3379 【模板】最近公共祖先(LCA)( tarjan算法, 模板题)
最近公共祖先LCA, tarjan算法
本题要点:
1、tarjan算法 是离线算法,把所有的查询读入,最后统一输出。
2、数组 vis[k] 表示 k点的访问状态,
vis[k] == 0, 表示未访问
vis[k] == 1, 表示已经访问, 但是未回溯
vis[k] == 2, 表示已经回溯
3、 如果 某次查询 (x, y), 此时点x 正处于 vis[x] == 1 的状态,而y处于 vis[y] == 2 的状态,
那么 lca(x, y) 就是 y点一直往上走,直达遇到第一个祖先 z, vis
原创
2020-09-20 17:22:28 ·
157 阅读 ·
0 评论