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

2022-09-10 00:39:30 字數 926 閱讀 8935

fft高精度乘法 與ntt高精度乘法 搞得不甚明了,不予解釋

fft:

#include#include#include#includeusing namespace std;

const int maxn = 300000;

const double pi = 3.1415926535;

typedef complexcd;

char s1[maxn],s2[maxn];

cd aa[maxn],bb[maxn];

int out[maxn],rev[maxn];

void getrev(int n)

}//來自sparrow的神奇方法

void fft(cd *a,int n,int dft)

ntt:

這裡是將fft的單位復根e^(dft*pi/2n)改成了 g^(dft*phi(p)/n),由於我們知道g,phi(p)長度乙個迴圈,於是-1*phi(p)/n就可以改成phi(p)-phi(p)/n。

模板考慮的是質數的情況,即phi(p)=p-1。

#include#include#include#includetypedef long long ll;

using namespace std;

const ll maxn = 300000;

const ll mod = (479<<21)+1;

const ll g=3;

char s1[maxn],s2[maxn];

ll aa[maxn],bb[maxn];

ll out[maxn],rev[maxn];

void getrev(ll n)

}ll ksm(ll a,ll b)

return ans;

}void ntt(ll *a,ll n,ll dft)

FFT高精度乘法

眾所周知,fft fast fourier transformation 即為快速傅氏變換,是離散傅氏變換的快速演算法,它是根據離散傅氏變換的奇 偶 虛 實等特性,對離散傅利葉變換的演算法進行改進獲得的.那麼我們用這個nb的演算法解決一些什麼沙雕問題呢qwq?沒錯!就是大名鼎鼎的高精度乘法 fft太...

高精度乘法 FFT

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

模板題 高精度乘法

給定兩個正整數a和b,請你計算a b的值。輸入格式 共兩行,第一行包含整數a,第二行包含整數b。輸出格式 共一行,包含a b的值。資料範圍 1 a的長度 100000,1 b 10000 輸入樣例 23 輸出樣例 6乘數a 1 a的長度 100000,乘數b 1 b 10000 模仿手工乘法 a n...