摘要:
【前言】 本人学习了一定时间的算法,主要精力都花在数学类的算法上面 而数学类的算法中,本人的大部分精力也花费在了数论算法上 此类算法相对抽象,证明过程比较复杂 网络上的博客有写得非常好的,但也有写得不明所以的 因此,本人特此开一个新的专题,专门负责讲解一些比较基础的数学类算法 但本人知识面也有限,部 阅读全文
摘要:
博客园主页 博客园博客主页 洛谷主页 洛谷博客主页 github主页 Codeforces主页 牛客网主页 QQ:923489297 后面,本人会慢慢将洛谷博客的文章同步发表到博客园来 转载或引用本人文章请先与本人联系 阅读全文
摘要:
一、引言 欧式筛/欧拉筛法/线性筛法(Euler Sieve)是一种能够在 \(O(n)\) 时间复杂度内,处理 \([1,n]\) 内质数的方法。 其相比埃氏筛/埃拉托斯特尼筛法(Eratosthenes Sieve)的 \(O(n\log\log n)\) 时间复杂度,主要的优化在于欧式筛保证了 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 任意模数多项式乘法-多模数快速数论变换 中国剩余定理 考虑一组同余式 $\begin{cases} \begin{aligned} x&\equiv& a_1&\pmod {m_1}\ x&\equiv& a_2&\pmod { 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 任意模数多项式乘法 在部分题目中,我们的多项式运算结果并不是对多项式模数(如 $998244353$)取模,而是对一些指定的(甚至是非质数的模数)取模。 为了解决这个问题,我们引入任意模数的多项式乘法。 首先需要明确的是:任意模 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 快速傅里叶变换的倍增实现 傅里叶变换的顺序 我们观察 第五篇 中的算法流程,可以发现: 对于 FFT 的前半部分,我们一直在奇偶分列,然后递归求解;对于后半部分,我们一直在 $O(n)$ 合并,然后向上返回。 对于这种分治后,子 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 快速傅里叶逆变换(IFFT) 引入 根据上一篇的内容,我们知道,FFT 可以将多项式转化为点值序列,通过点值序列的乘积来实现多项式的乘积。 而为了保证还原出的多项式就是我们需要求的多项式,我们需要保证 FFT 取点的数量高于多项 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 快速傅里叶变换(FFT)的分治实现 引入 根据 第一篇 的定义,当我们拥有两个度数分别不超过 $n,m$ (两者同阶)的多项式 $\displaystyle F(x)=\sum_{i=0}^n f_ix^i, G(x)=\sum 阅读全文
摘要:
传送门 【大意】 给定一个 CNF 和一个有向图。有向图上的每一条边都写上了一个字母。 要求你从 $s$ 到 $t$ 走一条尽可能短的路,且将经过的字母写下来后,这个字符串能被 CNF 接受。 输出字符串的串长。 【分析】 在有向图上行走,并写下边上的字符,这个过程等价于一个 DFA: 将所有状态的 阅读全文
摘要:
起因是我队友问了我一个问题: 我后面看了一下那题,等价的题意是求一个 CFG 和 DFA 交集,能识别的最短串的长度。 虽然编译原理没学过,但是我在可计算理论上有学到过:有个结论是,CFG 和 DFA 的交集也是 CFG ;而 CFG 推导出的最短串可以用队列+贪心的方法求解。但并没有学过如何对于给 阅读全文
摘要:
本文作者为 JustinRochester。 目录地址 上一篇 下一篇 单位根和单位根反演 引入 根据上一篇的内容,我们了解到复数可以表示为 $z=re^{i\theta}$ 的形式,其中 $r,\theta$ 分别表示复数的模长和幅角。 当 $r>1$ 时,复数 $z$ 反复乘自己将使得自己的模长 阅读全文
摘要:
传送门 毕设老师让我做 MAPF,由于学了好多 A* 算法的变形,就过来做一做了。 这题用的是 EPEA*(Enhanced Partial Expansion A*)算法 【分析】 显然搜索能过,但是状态空间太大了。一眼可 A*。 考虑所有机关的状态为 $s_i$ 时: 若没有连锁反应,最少步数为 阅读全文