
ACM-专题-字符串与搜索
潜水的疯
这个作者很懒,什么都没留下…
展开
-
ACM-三分搜索
类似于二分查找,三分搜索法也是比较常用的基于分治思想的高效查找方法。但是和二分不同,二分只适用于单调函数,比如常用的对单调递增或单调递减的一个序列中的某一个元素进行查找,三分却突破了这种限制,可以用于左边递增右边递减或者相反的,这么一类函数,也就是常说的凸函数和凹函数。但是为什么三分法可以用于凸函数或者凹函数呐,这其实是因为这种函数总是有一个最大值或者最小值,这样就可以借此判断出三分法中两个中点相原创 2015-03-24 21:21:36 · 6042 阅读 · 0 评论 -
ACM-二分查找
二分原创 2015-03-22 15:19:53 · 2456 阅读 · 0 评论 -
ACM-最大子矩阵和
最大子矩阵和问题是对最大子序列和问题的扩展,即从一维扩展到了二维。但是解决此问题的方法和原来的方法并没有太大的差别,这里就以同样的动态规划的实录思路来求解此问题。原来subSum[i]代表包含ai并且以ai结束的子序列的最大和,状态转移方程为subSum[i+1] = subSum[i]<0 ? 0 : subSum[i]+a[i+1],因为subSum[i]为负将对总和做负贡献,所以此时将其丢弃原创 2015-03-30 23:40:45 · 3832 阅读 · 0 评论 -
ACM-最大子序列和
最大子序列和问题,即给出一个序列a1,a2,a3,...,an,问该序列的所有子序列中,各项相加后和最大是多少,甚至还可能要求给出该子序列的起始位置和终止位置。算法一:最容易想到、直观的算法,就是枚举子序列的任何一个起点和终点位置,这样一定可以得到正确答案,并且也能求出子序列的位置,但同时也可以确定的是这样做的时间复杂度太高,达到了o(n^3),程序执行效率不高,一般都会超过时间限制。实现原创 2015-03-30 00:28:56 · 2204 阅读 · 0 评论