约 10 分钟
LCA 常用来算树上两点距离。设 dep[x] 为 x 到根的深度,则 u、v 间的距离=dep[u]+dep[v]-2*dep[LCA(u,v)]:两点各自到 LCA 的路径拼起来,公共祖先以上的部分被减掉了。
dep[x]
dep[u]+dep[v]-2*dep[LCA(u,v)]
树上 u、v 距离公式里,为什么 dep[LCA] 要乘 2 再减?
dep[LCA]
登录 后可看答案