
FFT & NTT
文章平均质量分 76
AbEver
孤单是一个人的狂欢
展开
-
HDU 4609 3-idiots (FFT)
题目传送门哦写在前面做题感想一道FFT果题写了一个中午,调了一个下午,题目还叫3-idiots,我感觉自己就是一idiot。。。关于快速傅立叶变换(FFT)蒟蒻我的理解: FFT就是通过点值、插值等步骤将O(n2)O(n^2)的多项式乘法(或者说卷积)优化到O(nlogn)O(nlogn)的算法。 FFT就是快速实现离散傅立叶变换(DFT)、逆离散傅立叶变换(IDFT)的过程。该方法主要分为几个原创 2017-08-10 17:19:52 · 669 阅读 · 0 评论 -
BZOJ 3160: 万径人踪灭(FFT+快速幂+manacher)
题目传送门题解题目大意就是求一个只有’a’和’b’的字符串中不连续的回文子序列的数量。所谓的回文子序列就是说这个子序列关于某个字符或某个间隙左右对称。举个栗子:在babbab中,b_bb_b就是一个合法的子序列。字符串只有’a’和’b’,直接设为0或1卷积一下两下。 于是位置和相同的字符对们就都被我们求出来了,回文子序列就是它们组成的。怎么来的还是要引用tututu大神的证明(括号内是我的补充):原创 2017-08-17 21:28:33 · 631 阅读 · 0 评论 -
洛谷 P4245 【模板】MTT(三模数NTT)
题目の传送门https://www.luogu.org/problemnew/show/P4245思路模数任意的多项式乘法。本题有两种做法,一种是拆系数FFT,另一种就是我写的跑得炒鸡慢的三模数NTT。首先相乘后每一位可能达到NP2NP^2即102310^{23}那么大。我们找三个NTT模数使其乘积大于102310^{23},然后暴力合并是不行的,因为会爆long long,我们先暴力合并两个,然后原创 2018-04-08 20:22:56 · 993 阅读 · 0 评论 -
BZOJ 3771: Triple(生成函数+FFT+容斥)
题目描述 传送门 题目大意:给一堆不同的数,问你从中取1-3个组成不同和的方案数,不考虑顺序。每个数的大小<=40000。 思路 简单的容斥。搞出取一个的生成函数AAA、取两个相同的生成函数BBB、取三个相同的生成函数CCC,然后答案就是A+A2−B+A3−3AB+2CA+A2−B+A3−3AB+2CA+A^2-B+A^3-3AB+2C。 乘起来的过程用FFT加速就行了。这...原创 2018-03-26 07:16:33 · 331 阅读 · 0 评论 -
BZOJ 3992: [SDOI2015]序列统计(NTT+快速幂+DP)
快速数论变换NTT 求原根 LL大法好原创 2018-02-23 01:49:12 · 404 阅读 · 0 评论 -
BZOJ 3527: [Zjoi2014]力 (FFT)
Description 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. Input 第一行一个整数n。 接下来n行每行输入一个数,第i行表示qi。原创 2018-02-22 00:07:36 · 379 阅读 · 0 评论 -
BZOJ 4259: 残缺的字符串(构造+FFT)
Description 很久很久以前,在你刚刚学习字符串匹配的时候,有两个仅包含小写字母的字符串A和B,其中A串长度为m,B串长度为n。可当你现在再次碰到这两个串时,这两个串已经老化了,每个串都有不同程度的残缺。 你想对这两个串重新进行匹配,其中A为模板串,那么现在问题来了,请回答,对于B的每一个位置i,从这个位置开始连续m个字符形成的子串是否可能与A串完全匹配? Input 第一...原创 2018-03-08 22:04:09 · 437 阅读 · 0 评论 -
BZOJ 4827: [Hnoi2017]礼物(FFT)
题目传送门轻轻戳我Solution题目欲求∑ni=1(xi+c−yi)2\sum_{i=1}^n(x_i+c-y_i)^2的最小值。先处理+c+c的问题,将式子展开 ∑i=1n(xi+c−yi)2=∑i=1n(xi−yi)2+2∑i=1n(xi−yi)c+nc2\sum_{i=1}^n(x_i+c-y_i)^2 =\sum_{i=1}^n(x_i-y_i)^2+2\sum_{i=1}^n(x_i-原创 2017-08-31 20:00:03 · 475 阅读 · 0 评论 -
UVALive - 4671 K-neighbor substrings (FFT+哈希+set)
题目传送门点这里题目大意有两个只包含’a’和’b’的字符串A和B,求A中与B的Hamming距离不超过K的本质不同的子串的数量。字符串长度范围为[1,100000],K的范围为[0,100000]。解题思路这是一道巧妙的利用FFT的字符串题。首先将两个字符串用多项式表示, 因为字符只有’a’和’b’, 我们就用0和1来表示原字符位置上对应的项的系数。首先如果用1表示’a’, 0表示’b’的话对于A的原创 2017-08-12 08:03:45 · 712 阅读 · 0 评论 -
HDU 5307 He is Flying(巧妙的构造+FFT)
题目描述传送门题目大意:一个非负整数组成的数列,记其前缀和为S。对于一段子区间,它对其部分和的贡献为其区间长度。问对于从0到Sn的部分和,其得到的总价值。0 <=S<=50000 1<=n<=100000 T=5思路根据贡献放系数,位置为指数的套路,我们要想要构造出的答案为: (i−j+1)si−sj−1(i-j+1)^{s_i-s_{j-1}}我们要构造生成函数来算出它,反正我是想不到的了,原创 2018-04-17 19:19:48 · 480 阅读 · 0 评论