FFT高精度乘法

2021-08-22 06:12:34 字數 1200 閱讀 5005

眾所周知,fft(fast fourier transformation),即為快速傅氏變換,是離散傅氏變換的快速演算法,它是根據離散傅氏變換的奇、偶、虛、實等特性,對離散傅利葉變換的演算法進行改進獲得的.

那麼我們用這個nb的演算法解決一些什麼沙雕問題呢qwq???

沒錯!就是大名鼎鼎的高精度乘法

fft太難了我不會啊qaq,ntt更難了哇怎麼辦啊

行吧,上**

#include

#include

#include

#include

#define n 200000

using

namespace

std;

const

double dft=2.0,idft=-2.0;

const

double pi=acos(-1),eps=0.5;

struct complex

complex operator + (const complex &b) const

complex operator - (const complex &b) const

complex operator * (const complex &b) const

}a[n],b[n],c[n];

char s1[n],s2[n];

int pos[n],n,top,len,ans[n];

inline

void fft(complex *a,double mode)

int main()

int o=0;

for(o=0;o1]-'0';a[o].y=0.0;}

while(o0;a[o++].y=0;}

for(o=0;o1]-'0';b[o].y=0.0;}

while(o0;b[o++].y=0;}

fft(a,dft);fft(b,dft);

for(int i=0;ifor(int i=0;iint(c[i].x+0.5);

for(int i=0;i1]+=ans[i]/10;

ans[i]%=10;

}for(int i=len-1;i>=0;i--) if(ans[i])

for(int i=top;i>=0;i--) printf("%d",ans[i]);

return

0;}

高精度乘法 FFT

學會了fft之後感覺自己征服了世界 當然是幻覺.不過fft還是很有用的,在優化大規模的動規問題的時候有極大效果.一般比較 的計數動規題都需要fft n 1e9 下面是高精度乘法的板子.include include include include include include include in...

P1919 FFT加速高精度乘法

傳送門 給出兩個n位10進製整數x和y,你需要計算x y。對於十進位制數我們可以將其轉換成 a0 10 0 a1 10 1 a2 10 2.an 10 n 那麼對於兩個數,我們就可以求出兩個的係數表示後得到a的點乘式和b的點乘式 最後得到的答案就是a和b的多項式的係數,這個問題o n 掃一遍,處理一...

模板 FFT與NTT高精度乘法模板

fft高精度乘法 與ntt高精度乘法 搞得不甚明了,不予解釋 fft include include include includeusing namespace std const int maxn 300000 const double pi 3.1415926535 typedef compl...