题目链接
题意:给出一个a和b,长度不超过5e4,输出a*b的结果
题解:直接上一波快速傅里叶变化-FFT即可~
//以下模板为结构体内为快速傅里叶变换模板
//结构体外为借助该模板实现的高精度乘法计算
//以下为多项式相乘(高精度可以看作x=10的多项式相乘)的快速傅里叶变换的使用简述:
//设一个a的正傅里叶变换为DEF(a),逆傅里叶变换为IDFT(a)
//并且有:多项式a和多项式b的多项式相乘的中间结果=IFDFT(DFT(a)*DFT(b))
//其中*运算为数组中的对应项进行复数乘法运算
//多项式a和多项式b相乘的结果等于中间结果除以多项式的长度n
//注意所有的数都必须使用浮点数,并且不能太大(浮点数会出现误差)
//注意长度要足够大并且为2的幂,不足长度补0
//高精度乘法还必须将运算结果进行进位
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include