FFT [TPLY]

Posted tply

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFT [TPLY]相关的知识,希望对你有一定的参考价值。

FFT [TPLY]

题目链接
https://www.luogu.org/problemnew/show/1919
https://www.luogu.org/problemnew/show/3803

资料推荐

orz大佬博客
http://www.cnblogs.com/cjoieryl/p/8206721.html (orz YL大佬)
http://blog.csdn.net/iamzky/article/details/22712347 (超级易懂)

知识点
复数:
https://baike.baidu.com/item/%E5%A4%8D%E6%95%B0/254365?fr=aladdin
单位根(单位复数根)
https://baike.baidu.com/item/%E5%8D%95%E4%BD%8D%E6%A0%B9
多项式表示
http://blog.csdn.net/acdreamers/article/details/39005227
卷积
http://blog.csdn.net/bitcarmanlee/article/details/54729807

书籍推荐
ACM/ICPC 算法基础训练教程 7.4快速傅里叶变换
算法导论 30章多项式与快速傅里叶变换

觉得看不懂很正常,知识点很抽象需要逐步理解
而对于本文,本文作用为对两位大佬内容解读并且加入自己看法
读者可以先花时间阅读以上推荐的文字,产生一定理解再读本文.由于作者很弱,可能会产生错误,还请大神帮忙指出.

正文

FFT作用

作用:求多项式乘法的系数(就是初中学的多项式)
FFT多项式乘法与普通形式有差异

一般多项式乘多项式法则:
多项式与多项式相乘,先用一个多项式的每一项与另一个多项式的每一项相乘,再把所得的积相加。
由多项式乘多项式法则可以得到(a+b)(c+d)=a(c+d)+b(c+d)=ac+ad+bc+bd

而FFT相当于‘绕了一个圈‘,
先从多项式最普通的表达形式---系数表达形式
转化成点值表达形式

(我的理解 : 点值表达形式就是用若干函数上的点的坐标来表示该函数,比如 f(x)=x^2-x+2={ ( 0 , 2 ) , ( 1 , 2 ) , ( 2 , 4 ) })

再进行点值表达式的运算,也就是点值乘法
最后,再将点值乘法的结果转回系数表达形式
就像绕了一个大圈

图片如下:(借鉴他人博客)
技术分享图片

未完待续...

























以上是关于FFT [TPLY]的主要内容,如果未能解决你的问题,请参考以下文章

(luogu P1594)护卫队[TPLY]

[USACO13NOV]没有找零No Change [TPLY]

Matlab fft 和 Scipy fft 的 FFT 结果略有不同

live FFT和 FFT为啥不一样

解释 numpy.fft.fft2 输出

通过对 FFT 结果进行共轭来使用 FFT 进行 IFFT