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

2021-08-25 22:43:45 字數 1428 閱讀 7110

給定乙個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

#define il inline

#define n 10000005

using

namespace

std;

#define getchar()(p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?eof:*p1++)

char buf[1

<<21],*p1=buf,*p2=buf;

il int read()

char sr[1

<<21],z[20];int c=-1,z;

il void ot()

il void print(int x)

const

double pi=acos(-1.0);

struct a

}a[n],b[n];

a operator + (a a,a b)

a operator - (a a,a b)

a operator * (a a,a b)

int n,m,l,r[n],len=1;

void fft(a *a,int type)

好像看ntt就沒那麼累了…

#include

#define il inline

#define ll long long

#define swap(x,y) x^=y,y^=x,x^=y

const int maxn=3

*1e6+10,mo=998244353,g=3,gi=332748118;

#define getchar() (p1==p2 && (p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?eof:*p1++)

char buf[1

<<21],*p1=buf,*p2=buf;

il int

read()

int n,m,len=1,l,r[maxn];

ll a[maxn],b[maxn];

il ll qpow(ll a,ll k)

return base%mo;

}il void ntt(ll *a,int type)}}

}int main()

uoj 34 多項式乘法 FFT NTT 模板

分類 模板fftntt uoj 34 多項式乘法 給你兩個多項式,請輸出乘起來後的多項式。第一行兩個整數 n 和 m,分別表示兩個多項式的次數。第二行 n 1 個整數,分別表示第乙個多項式的 0 到 n次項前的係數。第三行 m 1 個整數,分別表示第乙個多項式的 0 到 m次項前的係數。模板測試題。...

多項式乘法

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld et reo 吃完了元宵,又開始思考數學問題了。這次他拿了兩個多項式 p mathscrp 和 q mathscrq 他知道這兩個多項式的乘積也是乙個多項式,但他不...

多項式乘法

l1和l2是兩個帶頭結點的單鏈表表示的多項式,編寫演算法計算兩個多項式的乘積,運算結果仍用單鏈表進行儲存 include using namespace std typedef struct lnode lnode,linkedlist 查詢計算結果應該插入的位置 param l 鍊錶的頭結點指標 ...