
算法笔记
文章平均质量分 91
Galaxy Coder
这个作者很懒,什么都没留下…
展开
-
「算法笔记」从【伊卡洛斯】谈数据分治
引子 有时候,一些类似毒瘤数据结构的题目乍一看似乎十分令人头疼。它们往往是要求你统计某种元素的个数。实际上,这些题目有些不是数据结构题,而是使用了莫队思想对基本的程序进行优化。 例题——伊卡洛斯 题目大意:给定一个数列,每次询问一个区间内数的乘积的因数个数mod1000000007mod1000000007mod1000000007的结果。n,m≤100000n,m≤100000n,...原创 2018-05-06 21:55:03 · 368 阅读 · 0 评论 -
「算法笔记」莫比乌斯反演进阶
文章目录YY 的 GCD题目大意思路分析代码实现NOI 2016 循环之美题目大意思路分析代码实现UOJ 62 怎样跑的更快 YY 的 GCD 题目大意 求下列式子的值: ∑i=1n∑j=1m[gcd{i,j}∈P] (P 为素数集合)\sum_{i = 1}^{n} \sum_{j = 1}^{m} [\gcd\{i, j\} \in P]\ (P\ \text{为素数集合...原创 2018-11-05 20:42:03 · 605 阅读 · 0 评论 -
「算法笔记」杜教筛
推荐博客:algocode 算法博客。 简介:杜教筛是一种能在 Θ(n23)Θ(n23)\Theta(n^{\frac{2}{3}}) 的时间内求出积性函数 fff 的前缀和的方法,但是使用的前提是需要找到另一个数论函数 ggg 使得 ggg 以及 (f∗g)(f∗g)(f\!*\!g) 的前缀和都很容易计算。 常见的数论函数:见 algocode 算法博客。 常见的狄利克雷卷积:ϵ=μ∗1...原创 2018-08-18 21:24:04 · 490 阅读 · 0 评论 -
「算法笔记」莫比乌斯反演
莫比乌斯反演是数论中的一种小技巧,常用于解决一些数论函数的求和问题。通常做法是使用 μμ\mu 函数来将 [n=1][n=1][n=1] 转换成 ∑d|nμ(i)∑d|nμ(i)\sum_{d|n}\mu(i) 的形式。 推荐博客:algocode 算法博客 μμ\mu 的定义: 如果 nnn 有至少一个平方因子,那么 μ(n)=0μ(n)=0\mu(n)=0 如果 nnn 没有一个平方因...原创 2018-08-17 10:19:57 · 324 阅读 · 2 评论 -
「算法笔记」树上启发式合并
算法简介: 树上启发式合并 (DSU on Tree) 是一种能够在 Θ(nlog2n)Θ(nlog2n)\Theta(n\log_2n) 的时间里快速统计子树信息的小技巧。大致的思想是:将小的子树的信息合并到大的子树的信息中。具体的实现步骤一般是先 DFS 不是最大的子树并将该子树信息清空,然后 DFS 最大的子树并保留子树信息,在根据保留下来的最大子树信息算出原子树的信息。 例题一:子树...原创 2018-08-05 22:39:46 · 791 阅读 · 0 评论 -
「算法笔记」AC自动机
学习笔记 这篇Blog讲的很清楚 下面是个人的见解。 AC 自动机 = Trie + KMP 每一个节点有一个 fail 指针和 alphabet 个 next 指针。 插入:同 Trie。 计算 fail 指针:bfs 版的 KMP。 字符串匹配:基本上与 KMP 相同。 详见代码。 模版(指针版) // Luogu P3808 AC自动机模版 #include ...原创 2018-06-28 12:24:06 · 284 阅读 · 0 评论 -
「算法笔记」线性基
推荐博客:Sengxian的博客 推荐博客:YveH的博客 基:在线性代数中,基(也称为基底)是描述、刻画向量空间的基本工具。向量空间的基是它的一个特殊的子集,基的元素称为基向量。向量空间中任意一个元素,都可以唯一地表示成基向量的线性组合。如果基中元素个数有限,就称向量空间为有限维向量空间,将元素的个数称作向量空间的维数。 同样的,线性基是一种特殊的基,它通常会在异或运算中出现,它...原创 2018-07-02 22:45:20 · 317 阅读 · 0 评论 -
「算法笔记」Fast Fourier Transformation
推荐博客:algocode 算法博客 个人见解:Fast Fourier Transformation(FFT)Fast Fourier Transformation(FFT)Fast\ Fourier\ Transformation(FFT) 是一种能在 O(nlogn)O(nlogn)O(n\log n) 时间内求多项式的乘积的算法,代码复杂度较小,...原创 2018-07-16 14:56:18 · 442 阅读 · 0 评论 -
「算法笔记」CDQ分治
CDQ 分治新手教程 CDQ 分治是一种分治,可以解决许多重要问题。它的优点有:常数小,代码复杂度较低,并且可以替代一些高难度数据结构(如树套树)。缺点是只能解决离线的问题。 CDQ 分治解决的基本问题是:给定一些修改和查询,离线求出查询的结果;它的基本思想是:Divide the Queries into [l,mid] and [...原创 2018-07-25 02:45:59 · 859 阅读 · 2 评论 -
「算法笔记」高斯消元
引子 高斯消元(gauss elimination)(gauss elimination)(gauss\ elimination)是线性代数中的一个算法。 例题 求解一个nnn元线性方程组。 想一想我们是如何求解二元一次方程组的。 {ax+by=c (1)dx+ey=f (2){dx+ey=f (2)ax+by=c&a原创 2018-06-12 21:39:12 · 560 阅读 · 1 评论 -
「算法笔记」后缀数组 —— 从入门到进阶
文章目录后缀数组后缀数组是什么?倍增法求后缀数组思路分析代码实现height 数组height 数组是什么?线性求 height 数组思路分析代码实现例题讲解例 1:LCP 询问题目大意思路分析例 2:Musical Themes题目大意思路分析例题 3:【NOI 2015】品酒大会题目大意思路分析代码实现例题 4:【NOI 2016】优秀的拆分题目大意思路分析代码实现例题 5:【SCOI 201...原创 2019-01-08 19:33:47 · 903 阅读 · 0 评论