FFT 留個板子(後續可能還有FWT,NNT等)

2021-10-08 13:37:45 字數 1051 閱讀 6412

用於解決多項式乘法(樸素n^2,fft nlogn)

洛谷  多項式乘法:

#include#define n 8000005

using namespace std;

const double pi = acos(-1.0);

struct complexx

}a[n];

double coss[n], sinn[n];

int rev[n];

complexx operator + (complexx a, complexx b)

complexx operator - (complexx a, complexx b)

complexx operator * (complexx a, complexx b)

void fft(int len, complexx *a, int o)}}

}int n, m;

int main()

洛谷  a*b  

就是上面那個板子改改的事情,這個板子還可以用於大數相乘,時間複雜度為(len*loglen)比樸素的n^2好很多

#include#define n 8000005

using namespace std;

const double pi = acos(-1.0);

struct complexx

}a[n];

double coss[n], sinn[n];

int rev[n];

complexx operator + (complexx a, complexx b)

complexx operator - (complexx a, complexx b)

complexx operator * (complexx a, complexx b)

void fft(int len, complexx *a, int o)}}

}int n, m;

int main()cout

}

FFT簡單入門 板子

下面其實是寫給自己查閱的,真正要學可以看上面的。oi裡的fft並沒有那麼神奇,可以簡單理解為加速卷積 多項式 的工具。設n次多項式a,b,本來需要n 2的時間求其乘積 卷積 使用fft可以加速成n log n.n次單位複數根 滿足w n 1的複數。由複數乘法性質,幅角相加,長度相乘可知,w其實就是將...

給我留個門

有資格說這個話的人,是幸福的。留門,意味著溫暖的燈光,意味著浴室裡折好的睡衣,意味著桌上的一小罐牛奶,意味著一張便條,還意味著房間裡熟睡的親人和微微的鼾聲。後來在外地念書,畢業,在遠離家鄉的地方工作。每年只有很少的幾天時間待在家裡。就這麼幾天,總是有很多的應酬 當然了,兒時夥伴們回家都選在放長假的時...

KMP板子 Trie板子

kmp演算法是乙個字串匹配演算法,最直白的用法就是在乙個長度為n的字串t中查詢另乙個長度為m字串p的匹配 總之就是用於文字中進行單個字串的匹配 對於這個問題,暴力演算法是很好做的,直接對於t的每個位置判斷一下當前位置作為p的結尾是否可以匹配成功,演算法複雜度是o nm kmp演算法的主要思想是 假設...