摘要: 常见技巧总结 1 动态规划 对于贡献存在于整棵树上的 dp,考虑分两次分别计算子树内和子树外的贡献。也就是传统的 up and down。 AC 自动机上 dp 一般考虑设状态为:\(dp(i,j)\) 表示枚举到 AC 自动机上第 \(i\) 个点,字符串长度为 \(j\) 时的方案数。在 \(n 阅读全文
posted @ 2024-02-27 19:10 UKE_Automation 阅读(59) 评论(0) 推荐(3) 编辑
摘要: 慎用 memset 初始化。 数组空间要开够,用多个宏定义数组空间时,要分清楚是哪个常量。 图不连通时求所有强连通分量 tarjan 的时候应该写 for(int i = 1; i <= n; i++){if(!dfn[i]) tarjan(i);},不是tarjan(1)。 多组数据数组要清空,同 阅读全文
posted @ 2024-02-27 19:10 UKE_Automation 阅读(57) 评论(2) 推荐(1) 编辑
摘要: 1 计数原理和方法 1.1 加法原理 完成一件事情有 \(n\) 个办法,第一类方法有 \(n_1\) 个方案,第二类方法有 \(n_2\) 个方案,\(\cdots\),那么完成这件事共有 \(\sum\limits_{i=1}^nn_i\) 种方法。 1.2 乘法原理 完成一件事情有 \(n\) 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 快速傅立叶变换 1 引入 现在有两个多项式 \(f(x)\),\(g(x)\): \[f(x)=5x^2+3x+7\\g(x)=7x^2+2x+1 \]我们要求出两者相乘的结果,按照多项式相乘的运算法则,把每一项相乘,总复杂度为 \(O(n^2)\)。 这是传统算法能到达的最好复杂度。能不能进行优化 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 1 二叉搜索树 1.1 定义 二叉搜索树(Binary Sort Tree,BST)是一种二叉树的树形数据结构,定义如下: 空树是一颗二叉搜索树。 若二叉搜索树的左子树不为空,则其左子树上的所有点的权值都小于根节点的值。 若二叉搜索树的右子树不为空,则其右子树上的所有点的权值都大于根节点的值。 二叉 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(55) 评论(0) 推荐(1) 编辑
摘要: 1 随机化算法简介 随机化算法,是一种十分玄学的做法。 百度百科对其的定义是: 随机化算法(randomized algorithm),是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。就是将算法的某一步或某几步置于运气的控制之下,即该算法在运行 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 树链剖分 1 基础理论 1.1 基础概念 在树链剖分中,我们将会遇到如下的名词,在此先做以解释: 重儿子:对于一个子节点 \(u\) 如果 \(v\) 是其儿子,且 \(v\) 的子树大小是节点 \(u\) 的儿子中最大的,则称 \(v\) 是 \(u\) 的重儿子。 轻儿子:除了重儿子以外,就是轻 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 1 矩阵乘法 1.1 定义 对于两个矩阵 \(A,B\),其中 \(A\) 大小为 \(n\times m\) ,\(B\) 大小为 \(m\times p\),则这两个矩阵可以做乘法,得到的矩阵 \(C\) 的大小为 \(n\times p\)。 例如: \( A=\begin{bmatrix} 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 1 哈希 1.1 概念 哈希就是构造一个数字使之唯一的代表一个字符串。 我们来考虑一下二进制数的转化: \((1001)_2=1\times 2^3+0\times2^2+0\times2^1+1=(9)_{10}\) 现在,我们令 \('a'=1,'b'=2,'c'=3\cdots,'z'=26\ 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 1 同余 1.1 定义 若 \(a,b\) 为两个整数,且 \(a-b\) 能被自然数 \(m\) 整除,就说 \(a\) 和 \(b\) 关于模 \(m\) 同余,记作 \(a\equiv b\pmod{m}\)。 1.2 性质 同余有以下性质: 自反性: \(a\equiv a\pmod{m}\ 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 1 2023年最后一哆嗦 1 得分 题目 T1 T2 T3 T4 T5 T6 总和 得分 \(100\) \(100\) \(100\) \(0\) \(0\) \(0\) \(300\) 排名:rank \(5\)​。 2 题解 T1 根据题目所示的不等式,我们会得到: \((2x+2y)n+x\ 阅读全文
posted @ 2024-02-27 17:53 UKE_Automation 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 1 引入 对于传统 KMP,可以解决单模式串匹配的问题。 但是对于下面的问题,好像 KMP 就显得有些弱了: 给定 $n$ 个模式串 $s_i$ 和一个文本串 $t$,求有多少个不同的模式串在文本串里出现过。 那么对于这个问题,我们就要使用 AC 自动机求解。 2 实现 以上面的问题为例讲解 AC 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 1 分块 1.1 概念简述 分块被称为 “优雅的暴力”。 对于一个区间 $[1,n]$,我们将其分成若干个块。在处理整块时直接维护整块信息,达到降低时间复杂度的目的。 对于常规分块,设块长为 $m$,则一般情况下 $m$ 取 $\sqrt{n}$ 时复杂度最优。 下面举几例来说明分块如何降低时间复杂 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 1 卡特兰数 1.1 概述 卡特兰数的前几项是 $1,1,2,5,14,42,132,429,1430,4862\cdots$。 卡特兰数在组合数学中有着许多应用。下面给出一个经典例子: 在网格中向右或向上走,从 $(0,0)$ 走到 $(n,n)$,并且不能越过对角线的路径条数。 该问题的结果就是 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 1 算法描述 在一图中,从一点出发,沿图的边走到另一点所经过的路径中,各边上权值和最小的路径,叫做最短路径。最短路算法就是求解最短路径问题的算法。 其中,单源最短路径指从图中某一点到另外所有点的最短路径;多源最短路径指从图中每一点到另外所有点的最短路径。 2 四大最短路算法 2.1 Floyd 算法 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 1 事件与概率 1.1 相关概念 样本空间:某次随机试验的所有可能结果的集合,一般记为 $S$。 样本点:试验的每个结果,即 $S$ 中的元素。 事件:$S$ 的子集。 1.1.1 事件 基本事件:由一个样本点组成的只有一个元素的集合。 必然事件:在某种条件下必然会发生的事件。 不可能事件:在某种条 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 线段树合并 1 权值线段树 1.1 权值线段树的基本思想 权值线段树其实比较简单。 正常的线段树是维护区间上每一个点的值,而权值线段树则是维护每一个数字出现的次数(可以类比为桶)。 例如原本的 $1-4$ 表示区间 $[1,4]$ 上数字的和(或差、最大值等等),现在就表示数字 $1-4$ 的出现次 阅读全文
posted @ 2024-02-27 17:52 UKE_Automation 阅读(22) 评论(0) 推荐(0) 编辑