题目:输入两个大整数,用数组保存每一位数,然后用分治法计算; 思路:输入X Y,X高位用A数组保存,低位用B数组保存,Y高位用C数组保存,低位用D数组保存,则:X=A*10^(n/2)+B Y=C*10^(n/2)+D 分治方法:X*Y=A*C*10^n+((A-B)*(D-C)+A*C+B*D)* ...
分类:
其他好文 时间:
2016-09-16 12:41:58
阅读次数:
179
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2179 超大整数乘法 分析 FFT模板题. 把数字看成是多项式,x是10.然后用FFT做多项式乘法,最后进位就好了. 注意: 1.进位前要把每一位加0.5(或者更小),然后向下取整,应该是浮点数的 ...
分类:
其他好文 时间:
2016-06-10 17:42:33
阅读次数:
212
第一次写法法塔,,,感到威力无穷啊 看了一上午算导就当我看懂了?PS:要是机房里能有个清净的看书环境就好了 FFT主要是用了巧妙的复数单位根,复数单位根在复平面上的对称性使得快速傅立叶变换的时间复杂度空降为O(nlogn)←个人的愚蠢理解请随意吐槽 具体的我就不说了,算导上都说得很清楚,说得好像有人 ...
分类:
其他好文 时间:
2016-04-25 17:45:43
阅读次数:
230
本文主要整理了几个常用的大整数的算法:大整数加法大整数乘法大整数阶乘大整数幂其实大体的思路都差不多,都是用数组来存储大整数。以下的代码仅仅实现功能,并没有充分详细的参数判断,在实际运用中,肯定是需要考虑的。 大整数相加 大整数相乘 大整数阶乘 大整数幂 ...
分类:
编程语言 时间:
2016-04-09 18:44:45
阅读次数:
284
RE了2发 init竟然会开小.......1#include2#include3#include4#include5#include6usingnamespacestd;7constdoublePI=acos(-1);8intinit[100000*4+10];9#defineCcomplex1....
分类:
其他好文 时间:
2016-01-24 11:40:15
阅读次数:
151
参考 《算法设计与分析》 第四章 分治法 Anany Levitin著 翻译版 清华大学出版社 在上一篇文章中,介绍了分治策略的思想,主定理,以及几个用分治策略的经典案例。这一篇文章将继续探讨分治算法的其他应用,包括大整数乘法和Strassen矩阵乘法,最近点对问题和凸包问题这4个算法,一般来...
分类:
其他好文 时间:
2016-01-12 01:15:06
阅读次数:
291
一,题意: 大整数乘法模板题二,思路: 1,模拟乘法(注意"逢十进一") 2,倒序输出(注意首位0不输出) 三,步骤: 如:555 x 35 = 19425 5 5 5 5 5 5 x 3 5 x 3 5 ...
分类:
其他好文 时间:
2015-10-08 14:26:59
阅读次数:
171
又是一个赤裸裸的模板,倍增思想其实是关键,我们只有稍加改动,也可以得出另外一种运算,快速乘,但实用性不如快速幂,大概只有在大整数乘法时才会用到而倍增思想并不是仅仅用于快速运算,倍增求lca也是常用的倍增算法#include #include #include #include #include #i...
分类:
其他好文 时间:
2015-08-28 23:04:38
阅读次数:
264
我们知道,两个 N 位数字的整数的乘法,如果使用常规的算法,时间复杂度是 O(N2)。然而,使用快速傅里叶变换,时间复杂度可以降低到 O(N logN loglogN)。
假设我们要计算以下两个 N 位数字的乘积:
a = (aN-1aN-2...a1a0)10 = aN-1x10N-1 + aN-2x10N-2 + ... + a1x101 + a0x100
b = ...
分类:
其他好文 时间:
2015-08-04 08:13:33
阅读次数:
217
核心数学式:f(n) = F + f([0,n/2]) + f([n/2,n])思路:进行相应处理(打印结点、选好哨兵),将整个集合一分为二(一般是分为两部分)分别迭代处理两个半集合 例子:快排、二叉树遍历、最近点对、大整数乘法/* * 快排 * */#include template voi...
分类:
其他好文 时间:
2015-07-28 10:15:55
阅读次数:
107