多项式填坑。。?
大概就是填填坑了。
多项式带余除法
这东西啥啊。怎么还带翻转的。
别指望我写推导,丢个代码块就跑。
而且还是我美妙无比的多项式模板。(牛顿迭代自己\(yy\)循环写法的真的就我一个吗?)
inline void Inv(int *A,int *B,int n){ B[0]=Pow(A[0],MOD-2); for(RG int m=2;m<<1;m<<=1){ for(RG int i=0;i
原柿子是\(A=B*C+D\),这里\(ABCD\)都是多项式。
这个要注意每个多项式的长度,弄错挺麻烦的,如果\(WA\)了记得多调调数组长度。
还有就是记得清空\(C\)数组的后面那一截。
线性齐次常系数递推
应该没打错名字
同样是一波精妙无比的推导。你发现跟做快速幂一样就行了。
先乘再模,其他就是快速幂。
然而这种常数大到难以置信的\(nlog^2n\)已经没有救了。。。
同样是要用到多项式取模,某些\(DFT\)是可以省掉的,然而我懒得改了。
这种常数大大大大大大大的东西大概真的没救了。。。。
int rem[N<<2],B[N<<2],C[N<<2];inline void Mod(int *A,int *D,int n,int m){ reverse(A,A+n),Mul(A,rem,C,n),reverse(C,C+n-m+1),reverse(A,A+n); for(RG int i=n-m+1;i>=1; } return ;}
记得预处理东西卡卡常啊。。。(\(BC\)全局不变直接算出来)
剩下的东西找时间再更。