這是一道模板題。
給你兩個多項式,請輸出乘起來後的多項式。
輸入格式
第一行兩個整數 nn 和 mm,分別表示兩個多項式的次數。
第二行 n+1n+1 個整數,分別表示第乙個多項式的 00 到 nn 次項前的係數。
第三行 m+1m+1 個整數,分別表示第乙個多項式的 00 到 mm 次項前的係數。
輸出格式
一行 n+m+1n+m+1 個整數,分別表示乘起來後的多項式的 00 到 n+mn+m 次項前的係數。
樣例一
input
1 2
1 2
1 2 1
output
1 4 5 2
explanation(1
+2x)
⋅(1+
2x+x
2)=1
+4x+
5x2+
2x3。
限制與約定 0≤
n,m≤
1050≤n
,m≤105
,保證輸入中的係數大於等於 00 且小於等於 99。
時間限制:1s1s
空間限制:256mb
如題目,這道題就是快速傅利葉變換的模板題,我在此粘模板,感謝quack_quack
大神的講解。
#include
#include
#include
#include
#define maxn 300000
using
namespace
std;
int n,m,n;
struct cpx
cpx(double rr,double ii)
inline cpx operator+(const cpx &x)
inline cpx operator-(const cpx&x)
inline cpx operator*(const cpx&x)
inline
void
operator*=(const cpx&x)
}a[maxn+10],b[maxn+10],c[maxn+10],d[maxn+10];
template
void read(t &x)
}void read()
inline cpx cpx_pow(double n)
void fft(cpx *in,cpx *out,int step,int size,int dir)
fft(in,out,(step<<1),(size>>1),dir);
fft(in+step,out+(size>>1),(step<<1),(size>>1),dir);
int t=size>>1;
cpx w(1,0),w1(cos(dir*2*m_pi/size),sin(dir*2*m_pi/size)),tt;
for(int i=0;i>1)];
tt=w*odd;
out[i]=even+tt;
out[i+t]=even-tt;
}}void solve()
void print()
int main()
#include
#include
#include
#include
#define maxn 300000
using
namespace
std;
template
void read(t &x)
}struct cpx
cpx(double rr,double ii)
inline cpx operator+(const cpx &x)const
inline cpx operator-(const cpx &x)const
inline cpx operator*(const cpx &x)const
inline
void
operator*=(const cpx &x)
}a[maxn+10],b[maxn+10];
int n,m,r[maxn+10],log,len,n;
void read()
void fft(cpx *a,int f)
void print()
int main()
#include
#include
#include
#include
#define maxn 300000
using
namespace
std;
template
void read(t &x)
}struct cpx
cpx(double rr,double ii)
inline cpx operator+(const cpx &x)const
inline cpx operator-(const cpx &x)const
inline cpx operator*(const cpx &x)const
inline
void
operator*=(const cpx &x)
}a[maxn+10],b[maxn+10];
int n,m,len,n;
void read()
void fft(cpx *a,int f)
void print()
int main()
快速傅利葉變換 UOJ 34 多項式乘法
這是一道模板題。給你兩個多項式,請輸出乘起來後的多項式。輸入格式 第一行兩個整數 nn 和 mm,分別表示兩個多項式的次數。第二行 n 1n 1 個整數,分別表示第乙個多項式的 00 到 nn 次項前的係數。第三行 m 1m 1 個整數,分別表示第乙個多項式的 00 到 mm 次項前的係數。輸出格式...
UOJ 34 多項式乘法
快速傅利葉變換 關於fft網上的教材不多,而且大多與演算法問題關係不大。強烈推薦乙個。這個講得真的很不錯 從多項式乘法到快速傅利葉變換 本弱數學知識不夠多,複數 單位根之類的知識都是下午臨時補的。從下午開始看fft,看到晚上,總算大概是把遞迴版fft的思路看懂了吧。迭代版的還沒看懂。有空慢慢鑽研 u...
UOJ 34 多項式乘法
統計這是一道模板題。給你兩個多項式,請輸出乘起來後的多項式。第一行兩個整數 n n 和 mm 分別表示兩個多項式的次數。第二行 n 1 n 1 個整數,分別表示第乙個多項式的 0 0 到 nn 次項前的係數。第三行 m 1 m 1 個整數,分別表示第乙個多項式的 0 0 到 mm 次項前的係數。一行...