任意模数FFT】的更多相关文章

题目大意 求多项式 \(\prod_{i=1}^n(x+i)\) 的系数在模 \(p\) 意义下的分布,对 \(998244353\) 取模. \(p\) 为质数. \(n\leq {10}^{18},p\leq 250000\) 题解 我们只计算 \([1,p-1]\) 的分布,最后再算出 \(0\) 的出现次数. 记 \(n1=\lfloor\frac{n}{p}\rfloor,n2=n\bmod p\).若 \(n\bmod p=p-1\),则 \(n1=\lfloor\frac{n}{p…
卡精度的任意模数fft模板题……这道题随便写个表就能看出规律来(或者说考虑一下实际意义),反正拿到这题之后,很快就会发现他是任意模数fft模板题.然后我就去网上抄了一下板子……我打的是最土的任意模数fft,就是fft7次的那种……(好像有很多方法的样子……)这种任意模数fft方法见http://blog.csdn.net/l_0_forever_lf/article/details/52886397这道题的具体做法见http://blog.csdn.net/qq_33229466/article…
任意模数FFT 这是一个神奇的魔法,但是和往常一样,在这之前,先 \(\texttt{orz}\ \color{orange}{\texttt{matthew99}}\) 问题描述 给定 2 个多项式 \(F(x), G(x)\) ,请求出 \(F(x) * G(x)\). 系数对 p 取模,\(2 \le p \le 10^9+9\) 拆系数FFT 我们考虑令\(M\)为\(\sqrt{p}\),那么我们可以将原本的多项式拆成4个. \(F(x)=A(x)*M+B(x)\) \(G(X)=C(…
1258 序列求和 V4 题意:求\(S_m(n) = \sum_{i=1}^n i^m \mod 10^9+7\),多组数据,\(T \le 500, n \le 10^{18}, k \le 50000\) 等幂求和 多项式求逆元\(O(mlogm)\)预处理伯努利数,然后可以\(O(m)\)回答 因为是任意模数,所以要用拆系数fft 拆系数fft+多项式求逆元,写的爽死了 具体内容可能会写学习笔记 注意: 多项式求逆元里拆系数,不能只更新 .x= ,这样的话y还保留以前的值就错了 因为使用…
拆系数FFT 对于任意模数 \(mod\) 设\(m=\sqrt {mod}\) 把多项式\(A(x)\)和\(B(x)\)的系数都拆成\(a\times m+b\)的形式,时\(a, b\)都小于\(m\) 提出,那么一个多项式就可以拆成两个多项式的加法 一个是\(a*m\)的,一个是\(b\)的 直接乘法分配律,\(aa\)一遍,\(ab\)一遍,\(ba\),\(bb\)一遍,四遍\(FFT\) 乘出来不会超过取模范围 然后合并直接 \[(a\times m+b)(c\times m+d)…
hdu 4656 Evaluation 题意:给出\(n,b,c,d,f(x) = \sum_{i=1}^{n-1} a_ix^i\),求\(f(b\cdot c^{2k}+d):0\le k < n\) 取模\(10^6+3\) 昨天刚看过<具体数学>上求和一章 代入\(b\cdot c^{2k}+d\)然后展开,交换求和顺序,得到 \[ f(k) = \sum_{j=0}^n \frac{b^j c^{2kj}}{j!} \sum_{i=j}^n a_i i! \frac{d^{i-…
再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 目录 再探快速傅里叶变换(FFT)学习笔记(其三)(循环卷积的Bluestein算法+分治FFT+FFT的优化+任意模数NTT) 写在前面 一些约定 循环卷积 DFT卷积的本质 Bluestein's Algorithm 例题 分治FFT 例题 FFT的弱常数优化 复杂算式中减少FFT次数 例题 利用循环卷积 小范围暴力 例题 快速幂乘法次数的优化 FFT的强常数优化 DF…
任意模数\(NTT\) 众所周知,为了满足单位根的性质,\(NTT\)需要质数模数,而且需要能写成\(a2^{k} + r\)且\(2^k \ge n\) 比较常用的有\(998244353,1004535809,469762049\),这三个原根都是\(3\) 如果要任意模数怎么办? \(n\)次多项式在模\(m\)下乘积,最终系数一定不会大于\(nm^2\) 所以我们找三个模数分别做\(NTT\)再合并一下就好辣 但这样的合并结果会爆\(long long\)呢 需要用高精吗? 可以使用一些…
题目描述: luogu 题解: 用$fft$水过(什么$ntt$我不知道). 众所周知,$fft$精度低,$ntt$处理范围小. 所以就有了任意模数ntt神奇$fft$! 意思是这样的.比如我要算$F*G$,我可以把这两个多项式各分成两个多项式,一个表示$F_x/M$,一个表示$F_x$%$M$($M$是自己设定的阈值). 比如说$F=a*M+b,G=c*M+d$,那么$F*G=(a*M+b)*(c*M+d)=a*c*M^2+a*d*M+b*c*M+b*d$. 然后?就水过了啊…… 顺便提一下,…
MTT:任意模数NTT 概述 有时我们用FFT处理的数据很大,而模数可以分解为\(a\cdot 2^k+1\)的形式.次数用FFT精度不够,用NTT又找不到足够大的模数,于是MTT就应运而生了. MTT没有模数的限制,比NTT更加自由,应用广泛,可以用于任意模数或很大的数. MTT MTT是基于NTT的,其思想很简单,就是做多次NTT,每次使用不同的素数,然后使用CRT合并解,在合并的过程中模最终模数,或是对于无模数的情况使用高精度. 做NTT的次数取决于最大可能答案的大小,所用的所有素数之积必…