对于一个数组,尽可能地划分成两半(二分),加和最大的连续字数组或者在左边,或者在右边,或者跨越中间,一部分在左边,一部分在右边。 那么只要求出左半段数组的加和最大的连续子数组的和,求出右半段数组的加和最大的连续子数组的和,求出跨越中间的最大连续字数组的和,只要通过三者判断求出最大的那么就是整个数组最 ...
分类:
编程语言 时间:
2016-06-14 14:07:41
阅读次数:
303
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=2179 超大整数乘法 分析 FFT模板题. 把数字看成是多项式,x是10.然后用FFT做多项式乘法,最后进位就好了. 注意: 1.进位前要把每一位加0.5(或者更小),然后向下取整,应该是浮点数的 ...
分类:
其他好文 时间:
2016-06-10 17:42:33
阅读次数:
212
二分搜索算法上运用分治策略的典型例子。 给定已排好序的n个元素a[0...n-1],现在要在这n个元素中找出一特定元素x。 首先想到的是用顺序搜索方法,逐个比较a[0...n-1]中元素,直至找出元素x或搜索整个数组后确定x不在其中。这个算法没有很好利用n个元素已排好序这个条件,因此在最坏情况下,顺 ...
分类:
其他好文 时间:
2016-05-10 23:19:34
阅读次数:
226
第一次写法法塔,,,感到威力无穷啊 看了一上午算导就当我看懂了?PS:要是机房里能有个清净的看书环境就好了 FFT主要是用了巧妙的复数单位根,复数单位根在复平面上的对称性使得快速傅立叶变换的时间复杂度空降为O(nlogn)←个人的愚蠢理解请随意吐槽 具体的我就不说了,算导上都说得很清楚,说得好像有人 ...
分类:
其他好文 时间:
2016-04-25 17:45:43
阅读次数:
230
本文主要整理了几个常用的大整数的算法:大整数加法大整数乘法大整数阶乘大整数幂其实大体的思路都差不多,都是用数组来存储大整数。以下的代码仅仅实现功能,并没有充分详细的参数判断,在实际运用中,肯定是需要考虑的。 大整数相加 大整数相乘 大整数阶乘 大整数幂 ...
分类:
编程语言 时间:
2016-04-09 18:44:45
阅读次数:
284
分治法是一种很强大的算法设计方法。基本思想是:将原问题分解为几个规模小但类似于原问题的子问题,递归的求解这些子问题,然后再合并这些子问题的解来建立原问题的解。 在分治策略中,递归地求解一个问题,在每层递归中应用如下三个步骤: (1)分解(Divide):将原问题分解为一些子问题,子问题的形式与原问题
分类:
其他好文 时间:
2016-03-10 23:21:32
阅读次数:
327
第三章渐进的基本O()....常用函数% 和 // 转换斯特林近似公式斐波那契数第四章分治策略:分解(递归)--解决(递归触底)--合并求解递归式的3种方法:1:代入法(替代法):猜测一个(靠经验)--数学归纳法·2:递归树法:画树p31【第3版中文】p51->递归式--证明3:主方法:快速,有些地...
分类:
编程语言 时间:
2016-01-25 12:59:34
阅读次数:
300
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
分治策略中有一个经典的算法就是合并排序。这个算法的精髓也是分治二字。分而治之。将一个大规模的问题切割成若干个相同的小问题,小问题的规模非常小,非常easy解决,攻克了小的问题后再对这些小问题的结果进行合并得到大规模问题的解答。合并排序便是分治策略中比較经典的算法。首先是合并。两个排列有序的数列经过合...
分类:
编程语言 时间:
2016-01-21 15:45:18
阅读次数:
170
分治策略分为三步:分解原问题:将原问题分解为一些子问题,子问题形式与原问题一样,只是规模更小。解决子问题:递归的求解出子问题。如果子问题规模足够小,则停止递归,直接求解。合并子问题:将子问题的解合并为原问题的解主方法公式:T(n)=aT(n/b)+f(n);它刻画了这样一个分治算法:生成a个子问题....
分类:
其他好文 时间:
2016-01-20 22:24:15
阅读次数:
123