檢查資料:
input:
61 2 3 4 5 6
1.ntt多項式求逆
#include
#define maxn 2100005
#define ll long long
#define mod 998244353
using
namespace std;
int lg[maxn]
,r[maxn]
,w[maxn]
=,wlen;
intpow
(int base,
int k)
inline
void
ntt(
int a[maxn]
,int n,
int tp)
//n=2^k
if(tp==-1
)for
(int i=
0,inv=
pow(n,mod-2)
;i) a[i]
=1ll
*a[i]
*inv%mod;
}void
inv(
int a[maxn]
,int b[maxn]
,int n)
}int a[maxn]
,b[maxn]
;int
main()
output:
2.多項式除法:
感覺我好短啊。
#include
#define maxn 2100005
#define ll long long
#define mod 998244353
using
namespace std;
int lg[maxn]
,r[maxn]
,w[maxn]
=,wlen;
intpow
(int base,
int k)
inline
void
ntt(
int a[maxn]
,int n,
int tp)
//n=2^k
if(tp==-1
)for
(int i=
0,inv=
pow(n,mod-2)
;i) a[i]
=1ll
*a[i]
*inv%mod;
}void
mul(
int a[maxn]
,int b[maxn]
,int c[maxn]
,int n,
int m)
void
inv(
int a[maxn]
,int b[maxn]
,int n)
}void
div(
int a[maxn]
,int b[maxn]
,int c[maxn]
,int r[maxn]
,int n,
int m)
void
init
(int n)
int a[maxn]
,b[maxn]
,c[maxn]
,r[maxn]
;int
main()
3.多項式exp
ac code:(ps : 一旦到了需要多次呼叫函式的時候很多細節(清零)問題就出來了,以上的**好像都沒有考慮的說。。。。。。求逆,求lnln
ln,求e xp
expex
p都以本**為準)
63行還是有點短的說。
#include
#define maxn 300005
#define mod 998244353
using
namespace std;
int lg[maxn]
,r[maxn]
,w[maxn]
=,wlen,inv[maxn]=;
intpow
(int base,
int k)
void
init
(int n)
inline
void
ntt(
int*a,
int n,
int tp)
if(tp==-1
)for
(int i=
0,inv=
pow(n,mod-2)
;i) a[i]
=1ll
*a[i]
*inv%mod;
}void
inv(
int*a,
int*b,
int n)
}void
cln(
int*a,
int*b,
int n)
void
exp(
int*a,
int*b,
int n)
}int a[maxn]
,b[maxn]
;int
main()
4多項式開根
#include
#define maxn 300005
#define mod 998244353
using
namespace std;
int w[maxn]
=,lg[maxn]
,r[maxn]
,wlen;
intpow
(int base,
int k)
void
init
(int n)
inline
void
ntt(
int*a,
int n,
int tp)
void
inv(
int*a,
int*b,
int n)
}void
sqt(
int*a,
int*b,
int n)
}int n,m;
int a[maxn]
,b[maxn]
,c[maxn]
,d[maxn]
;int
main()
5.多項式求冪
有3種演算法:(後兩種只能玩整數冪)
1.多項式exp o(n
logn)
∗30
o(n \log n) * 30
o(nlogn)
∗302.多項式快速冪,每層3次fft t(n
)=t(
n/2)
+o(l
en
logle
n),實
際是o(
le
nlogl
en
logn)
t(n) = t(n/2) + o(len \log len),實際是o(len \log len \log n)
t(n)=t
(n/2
)+o(
lenlogle
n),實
際是o(
lenlogle
nlogn)
3.多項式快速冪,ntt後對每個數單獨進行快速冪然後再ntt回來。o(n
logn)
o(n \log n)
o(nlogn)
關於這3者的區別可以看這篇部落格
codeforces 1096g lucky tickets
多項式 多項式跑飛快 石室中學秘傳模板
終於把多項式板子打完啦!最後補充一點三角函式的芝士 求cos f cos f cosf 與sin f sin f sinf 想到偉大的尤拉公式!e i cos i sin e cos theta i sin theta e i cos i sin theta 看成多項式一樣的 推柿子得到 cos f...
多項式取模 模板
最近想寫一下多項式取模的模板,然而找不到模板題。於是上網找了個高精度除法題,寫完之後才發現高精度除法和多項式取模是不一樣的qaq。前者要求不能出現負數,為此某些位置可以暫時為0,將餘數拉到後面 而多項式取模則要求最高項一定要剩餘0。於是我把程式隨便改了改,先扔在這兒,以後備忘。我寫的是實數 fft ...
模板 多項式乘法(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...