Loading

摘要: LCA 基本定义:最近公共祖先简称 LCA(Lowest Common Ancestor)。两个结点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。 简单来讲,就是两个点到根的路径上,深度最深的重合点 常用的求解方法: 朴素方法 每次选择深度较深的那个结点,往上走一步,直到两个结点重合, 阅读全文
posted @ 2022-08-14 23:41 dgsvygd 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 染色 树链剖分 考虑如果在数列上的话,就是用线段树处理这个问题 线段树记录答案,并且处理区间和并的问题:如果区间合并的地方颜色相同,则加和后的答案要减一 因此维护所有线段树区间两端的颜色 染色的过程可以加入 $lazytag$ 然后再在树上跑一个树链剖分 时间复杂度为 $O(nlog^2n)$ #i 阅读全文
posted @ 2022-08-14 23:11 dgsvygd 阅读(19) 评论(0) 推荐(0) 编辑
摘要: Passable Paths LCA 在树上找到形容一条链,只用找到链的两个端点即可,因此这题的初始想法就是找端点 第一个端点:深度最深的地方 第二个端点:离第一个端点最远的那个点 找到两个端点之后,就判断一下其他点是否在这个链上:最快的方法就是判断两个端点到这个点 p 的距离之和,是不是和链长相等 阅读全文
posted @ 2022-08-14 20:05 dgsvygd 阅读(30) 评论(0) 推荐(0) 编辑