牛客 小米 小米Git LCA最近公共祖先 倍增
这道题很明显的LCA了
一般求LCA方法
先建树,求U,VU,VU,V的LCALCALCA
如果U和VU和VU和V深度不相同,先把深的那个点向上爬到同一层
如果已经跳到相同层了,就U,VU,VU,V一起向上跳,直到U==VU==VU==V
2. 倍增求LCA O(nlogn)O(nlogn)O(nlogn)
在1的基础上改进,引入了一个预处理好的表来记录往上跳20,21,22...2k2^0,2^1,2^2...2^k20,21,22...2k步的祖先
需要先dfsdfsdfs把这个表预处理出来
原创
2020-06-11 21:37:20 ·
165 阅读 ·
0 评论