LCA 可以将一条树上路径拆成一或两半,所以我们可以将很多关于区间的算法拓展到树上。
仓鼠找suger 洛谷P3398
考虑两条相交的纵向路径 \([A,B]\) 和 \([C,D]\),如图:
如果两条路径相交那么 \(C\) 是 \(B\) 的祖先,\(A\) 是 \(D\) 的祖先,对于任意的路径 \([A,X,B]\) 和 \([C,Y,D]\),如图:
可以将两条路径通过 LCA \(X,Y\) 各自拆成两段纵向路径,分别判断纵向路径 \([A,X]\)、\([B,X]\) 与 \([C,Y]\)、\([D,Y]\) 是否相交,同理前缀和和差分也可以扩展到树上。
标签:拆成,祖先,路径,纵向,相交,公共,LCA From: https://www.cnblogs.com/Livedreamyhy/p/18190910