多项式fft、ntt、fwt 总结

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-16 06:53:08

做了四五天的专题,但是并没有刷下多少题。可能一开始就对多项式这块十分困扰,很多细节理解不深。

最简单的形式就是直接两个多项式相乘,也就是多项式卷积,式子是$N^2$的。多项式算法的过程就是把卷积做一种变换,在变换后各系数相称得到新系数。其实这一步变换的构造过程挺深奥的,并不是很会。对于多项式卷积的变换就是点值。于是就有了快速变换这样的算法。

细节问题出过很多。边界的问题容易弄错。一般如果是两个N项多项式相乘,得到的是一个$2*N-1$项的多项式,这是存在系数的,只不过一般我们只要N项的结果,所以做fft、ntt的时候总项数从$2*N$开始计算。其实这样解释比较牵强,但是原理的解释我并不清楚,稍感性理解。

多项式卷积应该化成类似i+j=k的形式,其实差值为k也是可以卷积的(翻转一个序列,这样得到的结果序列也是反的)。

fwt处理位运算形式的卷积,同样分治法。位运算是针对下标的,分治的时候考虑好左右两半的子答案的贡献。

多项式全家桶,基础是求导、积分。有时候一些式子不是直接两个相乘得到另一个,可能还要先求出逆元再变回去。这时候用到的就是关于多项式的各种运算。

具体的题目好多是和卷积、“各种数和各种反演”有关,把式子化成卷积形式进行优化。

没有时间写每个题解了,做题也很少,好多东西还没学。这块综合了不少东西,前置内容就有很多。

可能多项式要咕一大截了,难受。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!