02 2023 档案
摘要:概述 最短路算法主要研究图上两点之间的最短路径问题。 事实上,许多问题都能转化为图来求解(图的本质就是点和边的集合,点是元素,边是元素之间的二元关系)。 所以最短路算法并不局限于“给出一张图,...”。 Floyd il void floyd(){ for(int k=1;k<=n;++k) for
阅读全文
摘要:概述 李超线段树是真正用于维护“线段”的线段树。 具体来说,李超线段树主要用于维护平面上线段(表现为给出定义域的一次函数)信息,通常为某处的最大/小值等。 实现原理 不妨以加线段,查询 与所有线段的交点的最大纵坐标为例。 众所周知,区间加等差数列,区间求和是容易的。然而区间取 $\m
阅读全文
摘要:钦定顺序特别重要,这不仅关乎到可能的去重,也关乎到简化问题。当然,错误的顺序可能会使问题更复杂(来自图上状压计数)。 如果觉得题目无从下手,考虑 DP(来自蜜蜂搬家)。 尝试着设计一个不管有多复杂的 DP 状态,然后一点一点把握题目中各个要素的关系,找到转移的途径。 考虑尽量简洁地描述题目要素之间的
阅读全文
摘要:概述 线段树优化通过线段树能快速区间取值和区间修改的特性,高效实现具有连续性的 dp 转移。 所谓的连续性可以是顺推的转移目标点为连续区间,也可以是逆推的转移出发点为连续区间,这一连续不一定必须是原数组下标这一维度上的。 效果一般为将 KD1D 的 dp 的 的转移优化至 $O(\lo
阅读全文
摘要:线套线 规定使用 OI 坐标系。 (按我的代码习惯)竖着关于 建一棵线段树,该线段树的每个节点都是一棵内层线段树,若该节点的管辖区间为 ,则该内层线段树的管辖范围为 的节点的实际管辖矩形为 。 单点加,矩形查 修改:在外
阅读全文
摘要:(强制在线)单点修,区间第 小 首先有一个简单的序列分块+值域二分做法: 序列分块,对每个块建值域树状数组。 修改时暴力修改, 。 询问时将两侧散块合并建一个虚块,然后在值域上二分,在每块内查询, 。 显然这是可平衡的,令 $B=num\
阅读全文
摘要:竞赛图 姑且先挂载在这里。 性质 1:竞赛图缩点所得必为一条链,链上的重构点称为 Tier,Tier 1 是拓扑序最高的。 性质 2:出度最大的点必然在 Tier 1 中。 将所有点分为三类,第一类是出度最大的某个点 ,第二类是被 直接指向的点,第三类是剩余的点。 不妨设存在点
阅读全文
摘要:概述 自动机是一种对信号序列进行判定的数学模型。 信号序列:一串有序的信号,例如字符串。 判定:指输出为 (在输入的信号序列可识别的前提下)。在 OI 中的自动机一般是广义的,即输出是任意的,具体来讲可能是在合法时输出对应方案的权值之类。 一般来讲,自动机可以抽象为一个有向图,点为状态,边
阅读全文
摘要:概述 有时,我们维护的数据结构是静态的,但题目却要求加/删。 如果题目满足元素互相独立,则考虑定期重构吧! 加入:将加入但还未整合到数据结构中的元素放入一个栈中,询问时暴力扫这个栈,到达阈值后将栈整合入数据结构,重新 build 一遍即可。 删除:考虑反演,我指的是算贡献(这要求贡献满足可减性,不过
阅读全文
摘要:概述 LCA(least common ancestor),最近公共祖先的英文缩写。 顾名思义,LCA 就是树上两个点最近的公共祖先,或者说两个点共同在的极小子树的根。 树上差分则是利用树本身的结合性(显然树不满足差分性,是点到根的链满足差分性)与 LCA 结合做的操作,譬如给某个路径上所有点 $+
阅读全文
摘要:概述 长链剖分通过把树剖成尽量长的多个链,高效地解决...我也不知道解决啥(长剖优化 DP 的东西在 DP 优化那边)。 毕竟这个东西,不具备启发式分裂的复杂度。不过其还是有一点性质的,有时候确实会用到... 恰如轻重剖是按 选重儿子,长剖是按 (这里指当前子树的最大深度)来选
阅读全文
摘要:概述 轻重链剖分通过将树剖分为若干条重链和它们之间相连的轻边,将树上路径问题转化成序列问题。 具体来讲,有很多树上路径问题本质上是把序列上的问题搬到了树上,此时我们可以进行轻重链剖分(后简记为轻重剖或重剖),将树上路径拆分为多条重链头尾相接,并通过能快速维护重链信息的数据结构来求解。 重剖方式如下:
阅读全文
摘要:前缀函数 前缀函数 为 的最大相同真前后缀长度。 如无特别说明,本文中所有字符串下标从 开始,长度为 。 考虑怎么求前缀函数。 首先肯定能想到暴力的 枚举 (子串长度,匹配长度,然后一位位验证)。但太蠢
阅读全文
摘要:概述 坐,都坐。我知道各位都很激动,但这个缩写的全称是 Aho-Corasick automaton,AC 是两位发明者的姓氏,automaton:自动机。 AC 自动机通过将 trie 的结构和 KMP 的思想结合起来,利用 trie 的结构存储多模式串(或者说构建对应的图论模型),然后将 KMP
阅读全文
摘要:字符串哈希 字典树 前缀函数与 KMP AC 自动机 Z 函数(扩展 KMP) manacher 算法 后缀数组
阅读全文