随笔分类 - 算法/数据结构学习
摘要:悬线法可以用来求一类带有障碍点的最大子矩阵问题,对于一个N×M的矩阵,该算法时间复杂度O(NM)。 基本概念 有效竖线:除了两个端点外,不覆盖任何一个障碍点的竖直线段 悬线:上端覆盖了一个障碍点的或者到达整个矩形上边界的有效竖线 悬线对应矩形:如果把一个悬线向左右两个方向尽可能
阅读全文
摘要:线段树:我还是很强的 简略讲解 要用线段树维护区间,我们要明确: 线段树存什么东西 怎么合并 如果有区间修改,怎么打标记 对于区间最大子段和,我们可以记录四个值:以维护的区间左端点为起点的最大子段和,以维护的区间右端点为终点的最大子段和,在维护区间内的最大子段和 和维护区间所有元素的和 合并的话稍微
阅读全文
摘要:前置技能:线段树、DFS 当我第一次听到 “树链剖分” 这个算法的时候,感觉它一定很高大上。现在看来,它确实很高大上,不过也十分的 暴力 (个人认为,不喜勿喷) 基本概念 树链剖分,计算机术语,指一种对树进行划分的算法,它先通过轻重边剖分将树分为多条链,保证每个点属于且只属于一条链,然后再通过数据结
阅读全文
摘要:LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先。 ———来自百度百科 例如: 在这棵树中 17 和 8 的LCA就是 3, 9 和 7 的LCA就是 7 。 明白了LCA后,就下来我们就要探讨探讨LC
阅读全文