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+...+an−1xn−1 a 0 + a 1 x 1 + a 2 x 2 + . . . + a n − 1 x n − 1 和 b0+b1x1+b2x2+...+bn−1xn−1 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+...+an−1xn−1 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 ) ) 。
对函数公式进行变换

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

被折叠的 条评论
为什么被折叠?



