FFT和NTT
YiPeng_Deng
这个作者很懒,什么都没留下…
展开
-
【LGV不相交路径】JZOJ6775.【NOI2020.07.31模拟】path
Description网格图中,有nnn个起点,第iii个点为(0,ai)(0,a_i)(0,ai),保证ai≤ai+1a_i\le a_{i+1}ai≤ai+1,求一种路径方案,使得iii号点到(i,0)(i,0)(i,0),且路径没有共用点的方案数,规定从(x,y)(x,y)(x,y)只能到(x+1,y)(x+1,y)(x+1,y)或(x,y−1)(x,y-1)(x,y−1)。模998244353,n≤1e6n\le1e6n≤1e6Solution这题是LGVLGVLGV的裸题。首原创 2020-07-31 17:32:42 · 314 阅读 · 0 评论 -
JZOJ6757.【NOI2020模拟07.22】T3(singer)
Descriptionn<219,m(n−k+1)<220n<2^{19},m(n-k+1)<2^{20}n<219,m(n−k+1)<220,模998244353998244353998244353Solution首先容斥,恰好kkk个容斥成至少kkk个升调,那么对于长度nnn来说至多有n−kn-kn−k段。f(n)=∑i>=nCin(−1)n−ig(i)f(n)=\sum_{i>=n}C_i^n(-1)^{n-i}g(i)f(n)=∑i&g原创 2020-07-22 08:39:25 · 198 阅读 · 0 评论 -
JZOJ6754.【2020.07.17NOI模拟】T3(always)
Description有nnn种颜色,第iii种颜色有c[i]c[i]c[i]个。对于所有∑c[i]\sum c[i]∑c[i]个元素的排列,它的贡献为∏1lk\prod \frac{1}{l_k}∏lk1,其中lkl_klk为首尾相接之后第kkk个极大连续段的长度。求(∑c[i])!∏c[i]!\frac{(\sum c[i])!}{\prod c[i]!}∏c[i]!(∑c[i])!个排列的贡献之和模998244353。n≤1e5,∑c[i]≤2e5n\leq1e5,\sum c[i]原创 2020-07-18 17:18:45 · 299 阅读 · 3 评论 -
多项式ln,exp学习小计
主要作为一个模板和总结多项式ln求G(x)=ln(F(x))G(x)=ln(F(x))G(x)=ln(F(x))两边求导G′(x)=F′(x)F(x)G'(x)=\frac{F'(x)}{F(x)}G′(x)=F(x)F′(x),注意这是复合函数求导。多项式求逆,求导,乘法即可求出G′(x)G'(x)G′(x)再积分回去就是G(x)G(x)G(x)一般会钦定常数项为1,否则ln的时候先求导再积分(这里是不定积分)你会发现常数项丢失了,得到的结果并不是原来的多项式,而是在每一项的基础上除以了原创 2020-06-10 17:37:32 · 700 阅读 · 0 评论 -
任意模数FTT
模板题luogu42459次DFT由于在一般的条件下值域大概在102310^{23}1023下,所以找到三个NTT模数,它们的乘积大于102310^{23}1023,求出三个模数下的答案,再用中国剩余定理把它们合并到一起,变成模三个数的乘积下的答案,这就是它的实际答案。一共需要9次DFT,常数比较小,但是9次实在是太慢了。三次变两次由于复数域的神奇性质,我们在FFT的时候可以将计算C(x)=A(x)B(x)C(x)=A(x)B(x)C(x)=A(x)B(x)这个原本需要三次DFT的操作变成只原创 2020-05-19 22:32:39 · 377 阅读 · 0 评论 -
快速阶乘算法(暂无实践)
Problem模板题luogu5282求 n! mod pn!\ mod\ pn! mod p,ppp是质数由于是任意模数,所以需要MTT。nlog2n\sqrt{n}log^2nnlog2n一种暴力 的方法是多项式加分块,设定一个块的大小BBB,以及这样一个多项式:f(x)=∏i=1B(x+i)f(x)=\prod_{i=1}^B{(x+i)}f(x)=i=1∏B(x+i)那么答案就是f(0)∗f(B)∗f(2B)∗...∗f(n/B∗B)∗原创 2020-05-18 21:16:09 · 467 阅读 · 0 评论 -
【PKUWC2019模拟2019.1.15】Permutation
DescriptionData Constraint一个简单的计数。稍微化简一下发现我们需要求(i-1)/2*(i-2)!/(i-y)!考场上的时候想到了这里,也想到了NTT,就是不会转换!!!??我们可以这样卷:设f[i]=(i-1)/2*(i-2)!,g[i]=1/(n-i)!那么那个式子就是sigma(f[i]*g[j])[i+j==n+y]妙啊妙…但...原创 2019-01-16 22:48:15 · 169 阅读 · 0 评论 -
【分治NTT/多项式求逆】JZOJ3303. 城市规划
Description求出n 个点的简单(无重边无自环)无向连通图数目.n <= 130000Solution设 f[i] 表示大小为i的答案,g[i]为2C(i,2)表示大小为i的任意无向图个数。考虑运用容斥。f[i] = g[i]-sigma( f[j] * g[i-j] * C(i-1,j-1) )用所有方案减去不连通的方案。枚举1所在的连通块(保证不重复不遗漏),再考...原创 2019-07-06 17:01:54 · 270 阅读 · 0 评论