随笔分类 - 算法笔记
摘要:
upd on 2022.1.13:小修一波,并加了复杂度证明。 一、前置概念 具体在 「算法笔记」莫比乌斯反演 写过,所以「前置概念」就简单写写。积性函数和完全积性函数就不写了。 狄利克雷卷积:对于两个数论函数 \(f,g\),定义它们的狄利克雷卷积 \(h=f*g\) 为 \[\displayst
阅读全文

摘要:
文章包括:组合数取模、Miller-Rabin 算法、Pollard-Rho 算法、威尔逊定理、类欧几里得算法、原根、BSGS 与 exBSGS、莫比乌斯反演、杜教筛。 前置内容:「算法笔记」基础数论、「算法笔记」CRT 与 exCRT。 upd:写这篇文章时处于什么也不懂的状态,后来重写了 MR
阅读全文

摘要:
写的很烂,别看了 QAQ。2021.12.30 重写了一遍没放这里,真想看的找我 qwq。 一、引入 顾名思义,后缀自动机(Suffix Automaton,简称 SAM)是一个 自动机。这里的自动机指的是确定有限状态自动机(DFA)。 DFA?DFA 的作用就是识别字符串。可以把一个 DFA 看成
阅读全文

摘要:
一、后缀树 前置知识:字典树(Trie)。 后缀树:所有后缀 \(S[i\sim n]\,(1\leq i\leq n)\) 组成的 Trie 树。 本质不同的子串个数可以达到 \(\mathcal{O}(n^2)\) 级别,故节点数为 \(\mathcal{O}(n^2)\),与枚举原串的每个子串
阅读全文

摘要:
一、积性函数 数论函数是指一个正整数到整数的映射。 积性函数:对于所有 互质 的整数 \(a,b\),有性质 \(f(ab)=f(a)f(b)\) 的数论函数。常见的积性函数有: 约数个数函数 \(d(n)=\sum_{d\mid n} 1\) 约数和函数 \(\sigma (n)=\sum_{d\
阅读全文

摘要:
一、前置概念 接下来的这些定义摘自 置换群 - OI Wiki。 1. 群 若集合 \(S\neq \varnothing\) 和 \(S\) 上的运算 \(\cdot\) 构成的代数结构 \((S,\cdot)\) 满足一下性质: 封闭性:\(\forall a,b\in S,a\cdot b\i
阅读全文

摘要:
一、长链剖分 长链剖分本质上就是另外一种链剖分方式。 对于每一个节点: 定义 重子节点 表示其子节点中子树 深度最大 的子节点。如果有多个子树深度最大的子节点,取其一。如果没有子节点,就无重子节点。 定义 轻子节点 表示剩余的子节点。 从这个节点到重子节点的边为 重边。到其他轻子节点的边为 轻边。
阅读全文

摘要:
2022.2.13 重写了一遍,有兴趣的可以找我( 一、定义 线性基是向量空间的一组基,通常可以解决有关异或的一些题目。 通俗一点的讲法就是由一个集合构造出来的另一个集合,它的性质如下: 线性基的元素能 相互异或 得到原集合的元素的 所有 相互异或得到的值,并且线性基是满足该性质的 最小的 集合。
阅读全文

摘要:
一、树的删边游戏 给出一棵有根树,两人轮流操作,每人每次可以选择一条边删去,不与根节点相连的部分将被移走。无法操作者输。 结论:叶子节点的 \(\text{SG}\) 值为 \(0\);中间节点的 \(\text{SG}\) 值为它的所有子节点的「\(\text{SG}\) 值加 \(1\)」的异或
阅读全文

摘要:
一、引入 先来看一道题:CF786B Legacy。 题目大意:有 \(n\) 个点、\(q\) 次操作。每一种操作为以下三种类型中的一种: 操作一:连一条 \(u\to v\) 的有向边,权值为 \(w\)。 操作二:对于所有 \(i\in [l,r]\) 连一条 \(u\to i\) 的有向边,
阅读全文

摘要:
普通的树形 dp 中,常常会采用叶→根的转移形式,若子节点有多个,则需要一一枚举,将子节点(子树)的 dp 值合并。dp 的状态表示中,第一维通常是节点编号(代表以该节点为根的子树)。大多数时候,我们采用递归的方式实现树形 dp。
阅读全文

摘要:
一、公平组合游戏 ICG 1. 公平组合游戏的定义 若一个游戏满足: 游戏有两个人参与,二者轮流做出决策。 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关。 不能行动的玩家判负。 则称该游戏为一个公平组合游戏。 2. 一些说明 我们把游戏过程中面临的状态称为局面
阅读全文

摘要:
一、引入 康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。 康托展开的实质是计算当前排列在所有由小到大全排列中的顺序,因此是可逆的。(摘自百度百科)通俗地说,康托展开可以用来求一个 1~n 的任意排列的排名(把 1~n 的所有排列按字典序排序,这个排列的位次就是它的排名)。康托展开可以在 O(n^2) 的复杂度内求出一个排列的排名,在用到树状数组优化时可以做到 O(n log n)。
阅读全文

摘要:
二分图:如果一个图的顶点能够被分为两个集合 X,Y,满足每一个集合内部都没有边相连,那么这张图被称作是一张二分图。 匹配:在图论中,一个匹配(matching)是一个边的集合,其中任意两条边都没有公共顶点。 最大匹配:一个图所有匹配
阅读全文

摘要:
相关内容:组合入门题目选做(应用在这儿呢,可配合该文章阅读 ) 一、基础内容 (这部分内容大家应该都会了,可以直接跳过) 1. 一些定义 加法原理:一般地,做一件事,完成它可以有 \(n\) 类方法,在第一类办法中有 \(m_1\) 种不同的方法,在第二类办法中有 \(m_2\) 种不同的方法,……
阅读全文

摘要:
一、引入 有的时候,我们不仅需要支持修改,还需要支持访问历史版本。 这个时候普通的线段树就没法胜任了,因为每次我们都覆盖了之前的版本。 若想知道数据集在任意时间的历史状态,有没有什么方法呢? 方法一:直接记录之前得到的所有的线段树。在第 i 项操作结束后(∀i∈[1,M]),把整个线段树拷贝一遍,存
阅读全文

摘要:
一、数学期望 1. 由来 在 17 世纪,有一个赌徒向法国著名数学家帕斯卡挑战,给他出了一道题目:甲乙两个人赌博,他们两人获胜的机率相等,比赛规则是先胜三局者为赢家,一共进行五局,赢家...
阅读全文

摘要:
续:「算法笔记」基础数论 2。 一、整除 对于两个整数 \(a,b\),存在两个唯一的整数 \(q,r\),使得 \(b=aq+r\),其中 \(0≤r<|a|\)。 特别地,若 \(r=0\),则我们称 \(a\) 整除 \(b\),记作 \(a\mid b\)。 对于两个正整数 \(a,b\),
阅读全文

摘要:
一、关于状压 dp 为了规避不确定性,我们将需要枚举的东西放入状态。当不确定性太多的时候,我们就需要将它们压进较少的维数内。
常见的状态:
天生二进制(开关、选与不选、是否出现……)
阅读全文
