HDOJ 1402. A * B Problem Plus (FFT快速傅里叶变换)

本文介绍了如何利用快速傅里叶变换(FFT)解决HDOJ 1402题,即计算大整数的乘法。通过FFT算法,可以在O(n log n)的时间复杂度内完成计算,避免了传统方法的时间复杂度为O(n^2)。文章详细解释了FFT的求值和插值过程,并提供了代码实现的优化细节,包括位数补全和位逆序交换的技巧。
摘要由CSDN通过智能技术生成

Problem Description
Calculate A * B.

Input
Each line will contain two integers A and B. Process to end of file.
Note: the length of each integer will not exceed 50000.

Output
For each case, output A * B in one line.

这是一道套用FFT模板的题目,因为刚学习了FFT算法知识,就拿来练手。

对于两个多项式相乘问题, a0+a1x1+a2x2+...+an1xn1 a 0 + a 1 x 1 + a 2 x 2 + . . . + a n − 1 x n − 1 b0+b1x1+b2x2+...+bn1xn1 b 0 + b 1 x 1 + b 2 x 2 + . . . + b n − 1 x n − 1 ,FFT可以通过求值和插值的方法,获得 O(nlgn) O ( n lg ⁡ n ) 的时间复杂度。

求值:对于函数 A(x)=a0+a1x1+a2x2+...+an1xn1 A ( x ) = a 0 + a 1 x 1 + a 2 x 2 + . . . + a n − 1 x n − 1 ,求得n个不同的点值 (xi,A(xi)) ( x i , A ( x i ) )

对函数公式进行变换

A(x)=a0+a1x1+a2x2+...+an
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值