uoj 34 多項式乘法 FFT NTT 模板

2021-07-29 21:27:39 字數 2547 閱讀 6590

分類:模板fftntt

[uoj 34 多項式乘法]

給你兩個多項式,請輸出乘起來後的多項式。

第一行兩個整數

n 和

m,分別表示兩個多項式的次數。

第二行 n+

1 個整數,分別表示第乙個多項式的

0 到

n次項前的係數。

第三行 m+

1 個整數,分別表示第乙個多項式的

0 到

m次項前的係數。

模板測試題。給出fft和ntt的板子。

可以直接去[uoj statistics] 檢視更好的板子。

#include 

using

namespace

std;

typedef

long

long ll;

typedef

long

double lb;

typedef pair pii;

typedef pairpll;

typedef

vector

vii;

const

int inf = 0x3f3f3f3f;

const ll infl = 0x3f3f3f3f3f3f3f3fll;

const

double eps = 1e-8;

const

double pi = acos(-1.0);

template

inline

bool scan_d (t &ret)

template

void print(t x)

template

void println(t x)

const

int maxn = 262144 + 5; /// 陣列大小應為2^k

//typedef complexcp;

struct cp

cp(double x, double y) : x(x), y(y) {}

inline

double real()

inline cp operator * (const cp& r) const

inline cp operator - (const cp& r) const

inline cp operator + (const cp& r) const

};cp a[maxn], b[maxn];

int r[maxn], res[maxn];

void fft_init(int nm, int k)

void fft(cp ax, int nm, int op) }}

if(op == -1) for(int i = 0; i < nm; ++i) ax[i].x /= nm;

}void trans(int ax, int bx, int n, int m)

int main()

/** ntt **/

#include

using

namespace

std;

typedef

long

long ll;

typedef

long

double lb;

typedef pair pii;

typedef pairpll;

typedef

vector

vii;

const

int inf = 0x3f3f3f3f;

const ll infl = 0x3f3f3f3f3f3f3f3fll;

const

double eps = 1e-8;

const

double pi = acos(-1.0);

template

inline

bool scan_d (t &ret)

template

void print(t x)

template

void println(t x)

const

int maxn = 262144 + 5; /// 陣列大小應為2^k

const

int g = 3, mod = 998244353;

int a[maxn], b[maxn], r[maxn], res[maxn];

template

t quick_pow(t a, t b)

return ret;

}void ntt_init(int nm, int k)

template

void ntt(t ax, int nm, int op) }}

if(op == -1)

}template

void trans(t ax, t bx, int n, int m)

int main()

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 次項前的係數。一行...

UOJ 34 多項式乘法

fft模板 迭代的還沒會 先寫了個遞迴的 define的pi 我也是神了!少上一位就會wa 模板看的hzwer的 因為 pi較短 所以遞迴的跑的和迭代的一樣快 23333333 還差的幾點 1.acos要用 2.complex要自己寫 yts1999大爺說會被卡 3.要改成迭代的 1 include...