天天看點

lca最近公共祖先(st表/倍增)

1.求出每個元素在樹中的深度

2.用st表預處理的方法處理出f[i][j],f[i][j]表示元素i上方第2^j行對應的祖先是誰 

3.将較深的點向上挪,直到兩結點的深度相同

4.深度相同後,祖先可能就在上方,再走幾步就到了,于是兩個點同時向上移

具體的方法和代碼貼在下面 ↓

lca最近公共祖先(st表/倍增)

2.用st表預處理的方法處理出f[i][j]

3.先比較a,b兩點哪個較深,将較深的點指派給a

将較深的點向上挪,直到兩結點的深度相同

lca最近公共祖先(st表/倍增)
lca最近公共祖先(st表/倍增)