輸入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出來的記憶體一定要清...