摘要: 线段树 对于维护区间内的信息,我们可使用RMQ,但这种做法的缺点是无法快速修改,而线段树这种数据结构则可以实现实时的查询、修改(单点、区间)。 原理: 线段树是一种二叉搜索树,对于每个节点,他代表区间L~R的信息,而其两个子节点分别代表L~mid、mid+1~R的信息。 建树: 只需要遍历到每个叶子 阅读全文
posted @ 2020-10-11 19:37 岚默笙 阅读(377) 评论(1) 推荐(1) 编辑
摘要: 树链剖分 在树上求LCA,我们常用的方法如:倍增法,离线Tarjin,转欧拉序,以及树链剖分。 树剖与其他算法相比,时间复杂度相近,而优点是可以与线段树结合,支持修改。 原理: 树剖就是将一棵树,根据子节点个数剖分成轻、重链,轻、重儿子,轻、重边。 轻、重儿子:重儿子为该点子节点中,子树体积(siz 阅读全文
posted @ 2020-10-11 15:01 岚默笙 阅读(244) 评论(1) 推荐(1) 编辑