loj 108 多項式乘法

2021-08-19 13:24:49 字數 1820 閱讀 1881

題目描述

這是一道模板題。

輸入兩個多項式,輸出這兩個多項式的乘積。

輸入格式

第一行兩個整數 n n n 和 m m m,分別表示兩個多項式的次數。

第二行 n+1 n + 1 n+1 個整數,分別表示第乙個多項式的 0 0 0 到 n n n 次項前的係數。

第三行 m+1 m + 1 m+1 個整數,分別表示第二個多項式的 0 0 0 到 m m m 次項前的係數。

輸出格式

一行 n+m+1 n + m + 1 n+m+1 個整數,分別表示乘起來後的多項式的 0 0 0 到 n+m n + m n+m 次項前的係數。

樣例樣例輸入

1 2

1 2

1 2 1

樣例輸出

1 4 5 2

模板ntt

#include

#include

#include

#define ll long long

using namespace std;

inline char gc()

return

*s++;

}inline int

read()

while(isdigit(ch)) x=x

*10+ch-'0',ch=gc();

return

x*f;

}const int n=1e5+10;

const int g=3;

const int mod=998244353;

inline int ksm(ll b,int t)

int a[n<<2],b[n<<2],r[n<<2],n,m;ll invn;

inline int inc(int

x,int v)

inline int dec(int

x,int v)

inline void ntt(int

*x,int f)

}if (f==-1) for (int i=0;ix[i]=x[i]*invn

%mod;

}int main()

fft

#include

#include

#include

#include

#define pi acos(-1)

using

namespace

std;

inline

char gc()

return *s++;

}inline

int read()

while(isdigit(ch)) x=x*10+ch-'0',ch=gc();

return x*f;

}const

int n=1e5+10;

struct c;}

inline

friend c operator-(const c &a,const c &b);}

inline

friend c operator*(const c &a,const c &b);}

inline

void

operator*=(const c &a)

}a[n<<2],b[n<<2];

int n,m,r[n<<2];

inline

void fft(c *x,int f);

for (int j=0;j1),t1,t2;

for (int k=0;kif(f==-1) for (int i=0;iint main()

loj 108 多項式乘法

題目描述 這是一道模板題。輸入兩個多項式,輸出這兩個多項式的乘積。輸入格式 第一行兩個整數 n nn 和 m mm,分別表示兩個多項式的次數。第二行 n 1 n 1n 1 個整數,分別表示第乙個多項式的 0 00 到 n nn 次項前的係數。第三行 m 1 m 1m 1 個整數,分別表示第二個多項式...

多項式乘法

時間限制 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 鍊錶的頭結點指標 ...