1.离线算法(只能求一组固定的数据,如果新的数据来了就要重新求一次):
Tarjan(离线):https://www.cnblogs.com/JVxie/p/4854719.html
模板:https://www.it610.com/article/4607682.htm
要用到并查集的知识:https://baijiahao.baidu.com/s?id=1651803445417553212&wfr=spider&for=pc

2.在线算法(提前求好以后,之后所有的查询都可以直接得到结果):
2.1树链剖分算法(在线):https://zhuanlan.zhihu.com/p/60478073
用到线段树的知识:https://baijiahao.baidu.com/s?id=1670794529569535430&wfr=spider&for=pc
视频(讲的很好):https://www.bilibili.com/video/BV1Qt411u77f?from=search&seid=11230398447195431719
2.2树上倍增lca算法:https://www.cnblogs.com/lbssxz/p/11114819.html
例题:https://ac.nowcoder.com/acm/contest/7141/A
题解(使用倍增lca算法。当然使用线段剖分也可以,不过还没学会可恶!):https://ac.nowcoder.com/acm/contest/view-submission?submissionId=44765079