模板 多項式乘法(FFT) FFT板子

2021-09-27 11:49:07 字數 1196 閱讀 6632

輸入n,m

(1e6

)n,m(1e6)

n,m(1e

6)輸入n +1

n+1n+

1個數字表示從低到高f(x

)f(x)

f(x)

的係數輸入m+1

m+1m+

1個數表示從低到高g(x

)g(x)

g(x)

的係數輸出:一行n+m

+1

n+m+1

n+m+

1個數表示f(x

)∗g(

x)

f(x)*g(x)

f(x)∗g

(x)從低到高的係數。

#include

#define cp complex

#define pi acos(-1.0)

using

namespace std;

const

int n=

5e6+9;

int n,m,rev[n]

;cp f[n]

,g[n]

;int bit;

inline

void

get_rev()

cp t[n]

;void

fft(cp *a,

int inv)}}

if(inv==-1

)}}int

main()

//不要直接輸入cp,會很卡。

for(

int i=

0,x;i<=m;i++

)while((

1<<

(n+m+1)

)++bit;

get_rev()

;fft

(f,1),

fft(g,1)

;for

(int i=

0;i<(1

<;i++

)f[i]

*=g[i]

;fft

(f,-1)

;for

(int i=

0;i<=m+n;i++

)cout<<

(int

)(f[i]

.real()

+0.5

)<<

" ";cout

}

多項式板子

板子封裝8太行,湊合著用吧 可能以後會把推導補上吧 咕咕咕 求逆 ll a mn b mn r mn void init int n void inv int f,int g,int n int mid n 1 1 inv f,g,mid int len 1 while len n 2 len 1 ...

模板 多項式乘法(FFT)(NTT)

給定乙個n次多項式f x f x 和乙個 m m 次多項式g x role presentation style position relative g x g x 請求出f x f x 和g x g x 的卷積。fft看了很久很久才看懂,總是看懂了後面的就忘記了前面的 累啊 include def...

多項式板子 新

upd於2.19 拉格朗日反演 多項式倍增快速冪 好像是還差乙個多項式取模.算了不寫了 注意本板子使用過程中 每個函式傳的len一定要保證是2的倍數,並且傳遞的陣列需要保證他有多於2 len的空間 每個函式傳進來的指標保證 0,len 有值,len,2 len 有定義 注意new出來的記憶體一定要清...