![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
=====FFT=====
fft
Qingo呀
老菜鸡。
展开
-
luogu P3803 【模板】多项式乘法(FFT)
题链:https://www.luogu.com.cn/problem/P3803代码:#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e6+10;const double PI = acos(-1.0);struct Complex{ double r,i; Complex(double _r = 0,double _i = 0) {原创 2020-12-08 19:19:05 · 202 阅读 · 0 评论 -
luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶)
题链:https://www.luogu.com.cn/problem/P1919思路:将数看成即可。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 1e6+10;const double PI = acos(-1.0);struct Complex{ double r,i; Complex(double _r = 0,double _i = 0)原创 2020-12-08 19:32:47 · 182 阅读 · 0 评论 -
HDU - 1402 A * B Problem Plus (FFT)
题链:https://vjudge.net/problem/HDU-1402思路:模板题,注意前导零。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 5e4+10;const double PI = acos(-1.0);struct Complex{ double r,i; Complex(double _r = 0,double _i = 0)原创 2020-12-08 19:39:47 · 115 阅读 · 0 评论 -
石油大 2020年秋季组队训练赛第二十五场 问题 H: Needle (FFT)
题目:思路:就是求数组a和数组c中有多少对(i,j),满足ai+cj==2*bk(k=1,2,3,..,nm)。将ai看作多项式的指数,num[ai]看作多项式的系数。FFT求多项式相乘,再计算答案,系数ai就是对应和为i的个数。#include <bits/stdc++.h>#define ll long longusing namespace std;const int N = 5e4+10;const int M = 9e4+10;const int base.原创 2020-12-08 19:53:20 · 367 阅读 · 0 评论 -
HDU - 4609 3-idiots (FFT)
题链:https://vjudge.net/problem/HDU-4609题意:n个数,求任选3个数组成三角形的概率。思路:先排一下序,然后就变成求 ai+aj>ak (i<j<k)三元组的个数,和此题类似,将ai看作多项式的指数,num[ai]看作多项式的系数。FFT求多项式相乘,再计算答案,系数ai就是对应和为i的个数。首先要把自己加自己(ai+ai)的减去,然后再除于2(因为 ai+aj 和aj+ai 都算了)。注意,我们要求的ai+aj>ak,ai和aj要小于ak.原创 2020-12-08 20:28:30 · 224 阅读 · 0 评论 -
FFT(理解+模板+例题)
一、理解快速求两个多项式相乘。朴素做法就是暴力枚举两个多项式的每一项【】。FFT,先用点值法(后面解释)把多项式表示出来(DFT过程)【】,再计算点值相乘【】,然后再把点值法还原成系数法(后面解释)表示(IDFT过程)【】。点值法:涉及线代,简单理解就是把多项式看为函数。中学知识告诉我们,n个未知数(这里的未知数是每一项的系数)至少要有n个方程才能有唯一解。(线代可以证明,有兴趣自己查。)那么,如果我们知道函数的n个不同的值。即n个,我们就可以唯一的确定一个多项式。DFT就是巧妙的利用复数,将n个系原创 2020-12-08 20:40:40 · 1127 阅读 · 0 评论