POJ 1470 LCA tarjan 離線算法
這裡有個講解非常明白,雖然沒證明。點擊打開鏈接
還有個數據結構的學習
點擊打開鏈接 伸展樹/Treap/劃分樹/ 歸並樹
步驟:
tarjan算法的步驟是(當dfs到節點u時):
1 在並查集中建立僅有u的集合,設置該集合的祖先為u
1 對u的每個孩子v:
1.1 tarjan之
1.2 合並v到父節點u的集合,確保集合的祖先是u
2 設置u為已遍歷
3 處理關於u的查詢,若查詢(u,v)中的v已遍歷過,則LCA(u,v)=v所在的集合的祖先
#include
#include
#include
#include
#include
#include
#include
#include