合集-学习笔记
摘要:1 随机化算法简介 随机化算法,是一种十分玄学的做法。 百度百科对其的定义是: 随机化算法(randomized algorithm),是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。就是将算法的某一步或某几步置于运气的控制之下,即该算法在运行
阅读全文
摘要:1 事件与概率 1.1 相关概念 样本空间:某次随机试验的所有可能结果的集合,一般记为 。 样本点:试验的每个结果,即 中的元素。 事件: 的子集。 1.1.1 事件 基本事件:由一个样本点组成的只有一个元素的集合。 必然事件:在某种条件下必然会发生的事件。 不可能事件:在某种条
阅读全文
摘要:树链剖分 1 基础理论 1.1 基础概念 在树链剖分中,我们将会遇到如下的名词,在此先做以解释: 重儿子:对于一个子节点 如果 是其儿子,且 的子树大小是节点 的儿子中最大的,则称 是 的重儿子。 轻儿子:除了重儿子以外,就是轻
阅读全文
摘要:1 算法描述 在一图中,从一点出发,沿图的边走到另一点所经过的路径中,各边上权值和最小的路径,叫做最短路径。最短路算法就是求解最短路径问题的算法。 其中,单源最短路径指从图中某一点到另外所有点的最短路径;多源最短路径指从图中每一点到另外所有点的最短路径。 2 四大最短路算法 2.1 Floyd 算法
阅读全文
摘要:1 卡特兰数 1.1 概述 卡特兰数的前几项是 。 卡特兰数在组合数学中有着许多应用。下面给出一个经典例子: 在网格中向右或向上走,从 走到 ,并且不能越过对角线的路径条数。 该问题的结果就是
阅读全文
摘要:1 分块 1.1 概念简述 分块被称为 “优雅的暴力”。 对于一个区间 ,我们将其分成若干个块。在处理整块时直接维护整块信息,达到降低时间复杂度的目的。 对于常规分块,设块长为 ,则一般情况下 取 时复杂度最优。 下面举几例来说明分块如何降低时间复杂
阅读全文
摘要:1 引入 对于传统 KMP,可以解决单模式串匹配的问题。 但是对于下面的问题,好像 KMP 就显得有些弱了: 给定 个模式串 和一个文本串 ,求有多少个不同的模式串在文本串里出现过。 那么对于这个问题,我们就要使用 AC 自动机求解。 2 实现 以上面的问题为例讲解 AC
阅读全文
摘要:1 二叉搜索树 1.1 定义 二叉搜索树(Binary Sort Tree,BST)是一种二叉树的树形数据结构,定义如下: 空树是一颗二叉搜索树。 若二叉搜索树的左子树不为空,则其左子树上的所有点的权值都小于根节点的值。 若二叉搜索树的右子树不为空,则其右子树上的所有点的权值都大于根节点的值。 二叉
阅读全文
摘要:1 哈希 1.1 概念 哈希就是构造一个数字使之唯一的代表一个字符串。 我们来考虑一下二进制数的转化: 现在,我们令 \('a'=1,'b'=2,'c'=3\cdots,'z'=26\
阅读全文
摘要:1 Miller-Rabin 算法 1.1 引入 Miller-Rabin 的主要作用就是判断一个较大的数是不是质数。 那么根据基础数论中提到过的试除法,我们知道朴素去判断一个数是否是质数的复杂度是 的,在 的时候就十分不优了。 而 M
阅读全文
摘要:1 前言 首先你需要掌握的前置知识:后缀自动机 SAM。 在那篇文章的 4.4 小节中,我们介绍了使用普通 SAM 求解多个串之间的最长公共子串的方法。实际上,这种做法并不是最正规的。对于多个串之间的子串问题,最常采用的数据结构是广义后缀自动机(广义 SAM)。 广义 SAM,顾名思义,即对多个字符
阅读全文
摘要:1 概述及定义 后缀自动机(SAM)是一个强有力的数据结构,可以解决很多经典字符串问题,例如: 线性复杂度进行字符串匹配。 线性复杂度求出一个字符串的所有不同子串个数。 那么我们定义一个字符串 的 SAM 是一个可以接受 所有后缀的最小 DFA(确定性有限状态自动机)。 也就
阅读全文
摘要:1 概述 回文自动机(PAM),是一种用于维护回文子串的自动机。与其他自动机类似的,它由转移边以及 fail 指针构成,上面的每一个节点都代表一个回文子串。 回文自动机的结构与 AC 自动机比较相似,下面详细讲解。 2 结构 首先我们的 PAM 要存储所有的本质不同回文子串,那么考虑到回文子串的长度
阅读全文
摘要:1 问题引入 给定一个长度为 的字符串 ,请找出该字符串中所有的回文子串。 显然对于一个长度为 的字符串,其回文子串至多有 个,因此如果一个个统计复杂度必定不会优秀。 那如何优化复杂度呢?这就要提到 Manacher 算法了。在探讨这个算法之前,我们
阅读全文
摘要:1 概念 首先我们需要先定义后缀,这个其实很简单。我们定义后缀 表示以第 个字符开头的后缀,相当于 。 而后缀数组则主要关系到两个数组: 和 。其中 表示将所有后缀按字典序排序后第 小的后缀的编号 (即后缀
阅读全文
摘要:1 问题概述 分数规划是用于求一类分式的极值问题。 给定两个数列 ,求出一个数列 ,最小(大)化下列式子: \[\dfrac{\sum\limits_{i=1}^na_i\times w_i}{\sum\limits_{i=1}^nb_i\t
阅读全文
摘要:1 网络流基础概念 网络流的概念分为网络和流。 网络是指一种特殊的有向图 ,每条边上有容量 ,同时还有源汇点 。 对于一个网络,一个流 需要满足以下性质: 每条边上的流量 不能大于它的容量 \(c(u,v)\
阅读全文