https://www.cnblogs.com/kousak/p/9192094.htmlブロガーからの傍受のこの論文の一部!
ボイドDFS(INT P、INT FA){
BZ [P] [0] = FA、で[P] = ++ CNT。
以下のために(INT I = 1; I <bzmax; iは++)
BZは、[P]は[i]は= BZ [BZ [P] [I - 1] [I - 1]。
用(INT I = GH [P];〜I; I = G [i]が.nx){
int型、E = G [i]は.ED。
(E == FA)であれば続けます。
DFS(E、P)。
}
アウト[P] = CNT。
}
INT LCA(INT A、INT B){
IF(DEP [A]> DEP [B])スワップ(B)
([A]における<= [A] [B] &&アウト> = OUT [B])であれば
返します。
{ - (i--;〜I 1、NX I = bzmaxをINT)のために
[i]はNX = BZ [A]。
IF(([NX] <=で[B] &&アウト[NX]> = OUT [B])で!)
A = NX。
}
戻りBZ [A] [0]。
}