随笔分类 - 转载
摘要:出处:http://www.cnblogs.com/void/archive/2011/08/26/2153928.html作者对于差分约束的一点理解,虽然暂时感觉讲得还不是很详细,不过我也是刚开始接触这东西,也不能这样说别人= =,然转过来看一下先。-------------------------------------------------------------我是分界线-------------------------------------------------------------一直不知道差分约束是什么类型题目,最近在写最短路问题就顺带看了下,原来就是给出一些形如x-y,
阅读全文
posted @ 2013-09-05 20:58
海拉鲁的林克
摘要:出处:http://www.cnblogs.com/wuyiqi/archive/2012/01/06/2314078.html kmp next函数 kmp的周期问题,深入了解kmp中next的原理----------------------------------------------k m x j i由上,next【i】=j,两段红色的字符串相等(两个字符串完全相等),s[k....j]==s[m....i]设s[x...j]=s[j....i](xj=ji)则可得,以下简写字符串表达方式kj=kx+xj;mi=mj+ji;因为xj=ji,所以kx=mj,如下图...
阅读全文
posted @ 2013-08-25 16:46
海拉鲁的林克
摘要:出处:http://www.cppblog.com/oosky/archive/2006/07/06/9486.htmlKMP字符串模式匹配详解来自CSDN A_B_C_ABC网友KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度为O(m+n).。一.简单匹配算法先来看一个简单匹配算法的函数: 1 int Index_BF ( char S [ ], char T [ ], int pos ) 2 3 { 4 5 /* 若串 S 中从第pos(S 的下标0≤posS[0]!= S[1]...
阅读全文
posted @ 2013-08-21 10:07
海拉鲁的林克
摘要:出处:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.htmlKMP算法在介绍KMP算法之前,先介绍一下BF算法。一.BF算法 BF算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串P的第一个字符进行匹配,若相等,则继续比较S的第二个字符和P的第二个字符;若不相等,则比较S的第二个字符和P的第一个字符,依次比较下去,直到得出最后的匹配结果。 举例说明:S: ababcababaP:ababa BF算法匹配的步骤如下 i=0 i=1 ...
阅读全文
posted @ 2013-08-21 10:06
海拉鲁的林克
摘要:出处:http://hi.baidu.com/czyuan_acm/item/81b21d1910ea729c99ce33db三分法——求解凸性函数的极值问题——czyuan原创 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值。但当函数是凸性函数时,二分法就无法适用,这时三分法就可以“大显身手”~~ 如图,类似二分的定义Left和Right,mid = (Left + Right) / 2,midmid = (mid + Right) / 2; 如果mid靠近极值点,则Right = midmid;否则(即midmid靠近极值点),则Left = mid;程序模...
阅读全文
posted @ 2013-08-11 22:27
海拉鲁的林克
摘要:之前看过,可是当时没有细看,今天在网上搜了一下,看了一下别人的思路,毕竟这也是一类问题的经典。过一段时间再将自己对其认识总结。现在先转载别人的思路。 出处:http://blog.csdn.net/sd6264456/article/details/9318861 给n个点的坐标,求距离最近的一对点之间距离的一半。第一行是一个数n表示有n个点,接下来n行是n个点的x坐标和y坐标,实数。 这个题目其实就是求最近点对的距离。主要思想就是分治。先把n个点按x坐标排序,然后求左边n/2个和右边n/2个的最近距离,最后合并。合并要重点说一下,比较麻烦。 首先,假设点是n个,编号为1到n。我们要分...
阅读全文
posted @ 2013-07-31 23:59
海拉鲁的林克
摘要:这东西暂时只看懂了贪心算法的一点,先收藏起来,认识更多的时候再看来源:http://hi.baidu.com/winterlegend/item/dc752c0bf2c18c8c02ce1bad贪心算法与拟阵基础贪心算法是通过一系列的选择来得到问题的最优解。对于每一个决策点,贪心算法所做出的都是当前状态下的最优决策。贪心算法的设计,一般为:1)将优化问题转化为这样的问题,即先做出决策,再解决剩下的一个子问题。2)证明原问题总是有一个最优解是通过贪心得到的,从而说明贪心策略的安全性。(注意这里证明的技巧,是“总是有一个”)3)说明在做出贪心选择后,剩余的子问题具有这样的一个性质:即如果将子问题的
阅读全文
posted @ 2013-07-20 21:58
海拉鲁的林克
摘要:出处:http://hi.baidu.com/song_renchu/item/cba7b32997034a0c43634ac4最大子图形问题详解宋壬初最大子图形问题包括最大子正方形、最大子矩形、最大子三角形、最大子菱形等。这些问题可以用动态规划来解决。通过最大子图形问题,我们充分掌握了动态规划的核心思想,即同一的子问题只算一次。同时培养了对于图形的敏锐的观察力。子问题1:连续的1给定一个01串,求其中最长的连续1子串的长度。比如,对于串00101110110,最长连续1子串的长度是3。它由第5到7个字符组成。怎么解决呢?我们用一个数组a[1..n]来记录这个01串,然后,我们用一个数组f[0
阅读全文
posted @ 2013-06-12 19:11
海拉鲁的林克
摘要:来源 : http://www.cnblogs.com/liushang0419/archive/2011/09/19/2181476.html归并排序的确是分治思想的经典代表。写了很多次,这次又有新的收获,过去用的是递归的实现方式,理论上任何用递归方法实现的代码都可以转换为非递归的形式,所以此例也不例外。然后再用非递归的实现方法上进行改进,完成了“自然归并”算法,这比直接归并效率要高一些。先给出基础的用递归方法实现的归并排序:View Code 其中归并函数中的合并方法没有单独写开,单独函数merge()及其解释如下:void merge(int fir,int end,int mid){
阅读全文
posted @ 2013-05-25 11:57
海拉鲁的林克
摘要:出处:http://blog.sina.com.cn/s/blog_7502c77f0100ye4h.html首先,我们看看前序、中序、后序遍历的特性:前序遍历:1.访问根节点2.前序遍历左子树3.前序遍历右子树中序遍历:1.中序遍历左子树2.访问根节点3.中序遍历右子树后序遍历:1.后序遍历左子树2.后序遍历右子树3.访问根节点好了,先说说用前序遍历和中序遍历求后序遍历假设前序遍历为 adbgcefh, 中序遍历为 dgbaechf前序遍历是先访问根节点,然后再访问子树的,而中序遍历则先访问左子树再访问根节点那么把前序的 a 取出来,然后查找 a 在中序遍历中的位置就得到 dgb a ech
阅读全文
posted @ 2013-04-24 09:25
海拉鲁的林克

浙公网安备 33010602011771号