LCA
透明质酸钠
代码如诗
展开
-
Ancestor
代码】Ancestor。原创 2022-07-27 18:42:14 · 156 阅读 · 0 评论 -
LCA 板子(最近公共祖先)
3、遍历子节点时,如果depth大于更新,说明没有被搜索过,更新depth,放入队列,更新fa数组,fa[v][0]就是它的2^0也就是父节点,然后循环k[1,15]更新fa。4、否则,x和y一起往上跳,k[15,0],结果是要一起跳到lca的下一层;如果x和y的2^k辈祖先不相同,则跳;2、x往上跳,k[15,0],二进制拼凑,如果x跳了当前的k还是大于等于y的深度,就跳,否则不跳且continue。3、现在x和y同一深度了,如果x=y,说明y是x和y的lca,returnx。1、假设x是更深的那个。..原创 2022-07-27 16:04:32 · 315 阅读 · 0 评论 -
AcWing 3555. 二叉树
对于每个样例,要进行m次查询和1次遍历,因此总的时间复杂度为O(m*logn)基本思想为先把两个结点调整到同一深度,然后同时往上走,直到两个结点相等。要完成这些,除了记录左右儿子,还要记录父节点以及各结点深度。遍历树获取深度O(n)获取祖先O(logn)...原创 2022-07-22 11:06:29 · 199 阅读 · 0 评论