1
合集-学习笔记
摘要:数学是毒瘤 基础数论总结。 数论题的代码都是一个个板子拼起来的,本博客只放板子。 声明:本博客中出现的所有代码,都视为加入了 #define int long long 数论题的特点 题目大意简洁易懂。但有的题还是会古舟一堆 码量小,全是板子 极其难想,需要手推公式 long long 是标配 筛法
阅读全文
摘要:平衡树刚看的时候觉得很不好评价。 但它毕竟就是个数据结构,跟线段树的用途一样,都是用来维护数据。想想你刚看线段树时候的感受,是不是和现在刚看平衡树差不多。 事实来看,平衡树也不复杂。本质都是二叉搜索树,只不过维护平衡的方式不一样罢了。平衡树的类型看似那么多,实际上也就学两种:FHQ Treap 和
阅读全文
摘要:数学是毒瘤 组合数学总结。 如果说数论是数学的基础,那么组合数学往后就是高阶了。这之后的数学不再像数论那么板子,而是变得需要更多的推理和组合了。知识很简单,难的是应用。 本来还有什么容斥原理,看不懂,于是没放 初始化 为了方便快速求排列组合,我们需提前预处理阶乘和阶乘的乘法逆元。 令 \(\math
阅读全文
摘要:数学是毒瘤 概率与期望总结。 看这玩意就跟看扩展欧几里得、看矩阵乘法、看组合数学差不多,甚至比那些还难一个档次,因为它还跟 DP 搞在一起,美其名曰:概率 DP 和 期望 DP。 概率 定义 某个随机试验的某种可能结果称为 样本点 所有样本点构成的集合称为 样本空间 到这里很好理解,例:掷一个骰子的
阅读全文
摘要:一个图论,一个半数据结构。咱也不知道为啥这两个毫无关联的东西会放在一块。 基环树(环套树) 一些定义 基环树:一张有 个点和 条边的图,如果不保证连通的话,那么整张图是一张基环树森林。并且如果将环上的任意一条边去除,那么整棵基环树会成为一棵普通的树。 内向树:一棵所有节点出度
阅读全文
摘要:虚树 所谓虚树,就是对于一棵指定的树 ,构造一棵新的树 使得总节点数最小且包含指定的某几个节点和它们的 LCA。OI Wiki 上的几张图就能说明: 虚树能解决什么问题?优化树形 DP。比如给定多组询问,每组询问给出树上的一些关键点,最终的答案只和这些关键点有关。那么此时我们
阅读全文
摘要:同余最短路 与差分约束类似,都是最短路的一些神奇应用。 同余最短路可以解决类似这样的问题: 给定 个数,求给定值域内,用这些数(可以重复取)能够拼出多少其他数。代表题目:P3403、P2371。 给定 个数,求这 个整数不能拼出的最小/最大整数。代表题目:P266
阅读全文
摘要:CDQ 分治 主要用于解决偏序问题。在偏序问题中,以三维偏序居多。它是一种离线算法。 其实严格来说,它是一种思想而不是算法。它依赖于归并排序。 CDQ 分治也可以用于 1D/1D 动态规划的转移,不过目前暂不涉及。 偏序问题 什么是偏序?先从一维偏序说起。 一维偏序 给定 个点,每个点有
阅读全文
摘要:二分图速通 定义 若一个无向图 的点集 可以分解成两个互不相交的子集 ,且对于所有边 的端点 都分别属于子集 中的元素,则称 是一个二分图。 判定 一张无向图是二分图,当且仅当图中不存在
阅读全文
摘要:0/1 分数规划 0/1 分数规划模型是指,给定整数 和 ,求一组解 ,使下式最大/最小化: \[\frac{\sum_{i=1}^na_ix_i}{\sum_{i=1}^nb_ix_
阅读全文
摘要:Manacher 下面的叙述中,约定字符串下标从 开始。 定义 Manacher 算法应用于一个特定场景:静态求一个字符串的最长回文子串。复杂度 ,是这种场景中效率最高的回文串算法。 首先考虑暴力法:枚举中心点,向左右扩展,判断它左右对称的位置是否相同。暴力法的复杂度上界
阅读全文
摘要:回文自动机 PAM 约定字符串下标从 开始。 定义 回文自动机,又称回文树,是一种 2014 年才发表的新算法。顾名思义,回文自动机用于求解回文串问题。它相较于 Manacher 算法的优点在于支持在线修改且复杂度不变。 实现 回文自动机的关键技术可以概括为 “奇偶字典树 + 后缀链跳跃
阅读全文
摘要:后缀自动机 SAM 约定:字符串下标从 开始。 后缀自动机是一个强有力的数据结构,能在线性时间内解决以下这些关于字符串的问题。 在一个字符串中搜索另一个字符串的所有出现位置。 计算给定的字符串中有多少个不同的子串。 容易发现,这些问题都和 “子串” 有关。事实上,后缀自动机能解决的问题基
阅读全文
1