P5394 模板 下降冪多項式乘法

2021-10-02 18:06:01 字數 3488 閱讀 5012

題目不好複製

要吸吸氧才能過。

這種寫法比第二種寫法少一次ntt。

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define llu unsigned ll

#define int ll

using

namespace std;

const

int maxn=

8e5+

1000

;const

int p=

998244353

;const

int g=3;

int fi[maxn]

;int a[maxn]

,b[maxn]

,c[maxn]

;int fac[maxn]

,inv[maxn]

;int

mypow

(int a,

int b)

return ans%p;

}void

init

(int n)

void

ntt(

int*x,

int len,

int f)}}

if(f==-1

)}signed

main

(void

)ntt

(a,len,1)

;ntt

(c,len,1)

;for

(int i=

0;i) a[i]

=a[i]

*c[i]

%p;ntt

(a,len,-1

);for(

int i=

0;i<=now;i++

)printf

("%lld "

,a[i]);

putchar

('\n');

return0;

}

只是比上面那種寫法多一次ntt而已。

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define llu unsigned ll

#define int ll

using

namespace std;

const

int maxn=

8e5+

1000

;const

int p=

998244353

;const

int g=3;

int fi[maxn]

;int a[maxn]

,b[maxn]

,c[maxn]

;int fac[maxn]

,inv[maxn]

;int

mypow

(int a,

int b)

return ans%p;

}void

init

(int n)

void

ntt(

int*x,

int len,

int f)}}

if(f==-1

)}void

getntt

(int

*a,int len,

int n,

int f)

else

}for

(int i=n+

1;i<=len;i++

) c[i]=0

;ntt

(a,len,1)

;ntt

(c,len,1)

;for

(int i=

0;i) a[i]

=a[i]

*c[i]

%p;ntt

(a,len,-1

);}signed

main

(void

)

加上快讀,再加上預處理原根的階乘,也沒卡過。。。

#include

#include

#include

#include

#include

#include

#include

#define ll long long

#define llu unsigned ll

#define int ll

using

namespace std;

char buffer[

100001],

*s,*t;

inline

char

get_char()

return

*s++;}

inline

intread()

const

int maxn=

8e5+

1000

;const

int p=

998244353

;const

int g=3;

int fi[maxn]

;int a[maxn]

,b[maxn]

,c[maxn]

;int fac[maxn]

,inv[maxn]

,gg[2]

[maxn]

;int

mypow

(int a,

int b)

return ans%p;

}void

init

(int n,

int m)

void

ntt(

int*x,

int len,

int f)}}

if(f==0)

}signed

main

(void

)ntt

(a,len,1)

;ntt

(c,len,1)

;for

(int i=

0;i) a[i]

=a[i]

*c[i]

%p;ntt

(a,len,0)

;for

(int i=

0;i<=now;i++

)printf

("%lld "

,a[i]);

putchar

('\n');

return0;

}

模板 多項式乘法(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...

P3803 模板 多項式乘法(FFT)

p3803 模板 多項式乘法 fft 給定乙個 n 次多項式 f x 和乙個 m 次多項式 g x 請求出 f x 和 g x 的卷積。從低到高輸出f x g x 的係數 另一種問法 如果有兩個無限序列a和b,那麼它們卷積的結果是 求出yn值 模板題建議背過模板 講的非常不錯的部落格 include...

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

輸入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 從低...