法法塔大法好ww
窝太菜了TAT,写着玩,表喷ww
求
多项式两种表示方法:点值表示法、系数表示法
如果用点值表示法的话,那么乘法就是 O(n) 的
FFT就是把系数表示变为点值表示,相乘后再变回系数表示,并且可以做到 O(nlogn)
单位复根: w[n] ,即 (w[n])n=1
窝们将 (w[n])k 记为 w[n]k
这里取的点就是 w[n]0,w[n]1,⋯,w[n]n−1
FFT : yk=∑n−1i=0ai(w[n]k)i
FFT −1 : ak=1n∑n−1i=0yi(w[n]−k)i
所以做IFFT的时候就只要用 w[n]−k 来替换 w[n]k 就好了QAQ
考虑如何求得 yi
令
y[0](x)=a0+a2x+⋯+an−2xn−22
y[1](x)=a1+a3x+⋯+an−1xn−22
则
y=y[0](x2)+xy[1](x2)
可以得到
yk=y[0]k+w[n]ky[1]k
yk+n2=y[0]k−w[n]ky[1]k
然后就可以分治搞了嘤QAQ
将变换后的系数用二进制表示,发现就是0,1,2,…n-1的倒序,所以就可以变了啊QAQ
求
同样考虑构造一种变换方式使得A、B能直接相乘
既然是位运算,那么每一位相互独立。。。
下一步当然是%pls辣ovo
异或
与
或
至于板子么。。当然是A+B啦!23333