资料学习
shuangde800
这个作者很懒,什么都没留下…
展开
-
Havel-Hakimi定理
Havel定理描述给定一个非负整数序列{d1,d2,...dn},若存在一个无向图使得图中各点的度与此序列一一对应,则称此序列可图化。进一步,若图为简单图,则称此序列可简单图化。可图化的判定比较简单:d1+d2+...dn=0(mod2)。关于具体图的构造,我们可以简单地把奇数度的点配对,剩下的全部搞成自环。可简单图化的判定,有一个Havel定理,是说: 我们把序列排成原创 2012-08-12 15:55:17 · 11349 阅读 · 1 评论 -
最短路算法(Shortest Paths Algorithm)
本文转自:http://mindlee.net/2011/11/18/shortest-paths-algorithm/ 假如你有一张地图,地图上给出了每一对相邻城市的距离,从一个地点到另外一个地点,如何找到一条最短的路? 最短路算法要解决的就是这类问题。定义:给定一个有(无)向图,每一条边有一个权值 w,给定一个起始点 S 和终止点 T ,求从 S 出发走到 T 的转载 2012-09-17 12:42:31 · 3720 阅读 · 0 评论 -
【算法导论】排序 (三):快速排序 深入分析
五、快速排序快速排序是最常用的一种排序算法,包括C的qsort,C++和Java的sort,都采用了快排(C++和Java的sort经过了优化,还混合了其他排序算法)。快排最坏情况O( n^2 ),但平均效率O(n lg n),而且这个O(n lg n)几号中隐含的常数因子很小,快排可以说是最快的排序算法,并非浪得虚名。另外它还是就地排序。快速排序是基于分治模式的:原创 2012-05-24 22:22:03 · 7022 阅读 · 0 评论 -
【算法导论】排序 (二):堆排序
四、(1)堆排序第一次听堆排序是在107lab听忠哥讲的,但是没讲怎么实现。那时刚看了数据结构的二叉树,还以为要通过指针建立二叉树的方式来实现,觉得挺难的。其实堆排序实现没有想象中的那么难。“堆”这个词最初是在堆排序中提出来的,但后来就逐渐指”废料收集储存区“,就像程序设计语言Lisp和Java中所提供的设施那样。我们这里的堆数据结构不是废料收集存储原创 2012-05-25 07:29:27 · 3113 阅读 · 6 评论 -
多进程DP
传纸条 http://www.rqnoj.cn/Problem_400.html【问题分析】这个题目要求我们在一个给定的矩阵中选择不相交的两条路径(首尾除外,而且必须相交),使得路径上的所有数和最大。【算法描述】这类题目有两种做法,一种是动态规划,一种是最小费流。由于最小费流实现比较复杂,没有什么实际意义,所以不再赘述。由于两条路径的长度相等,可以用f[k][p][q][x][原创 2012-05-07 19:08:36 · 1341 阅读 · 0 评论 -
矩阵连乘问题
写给自己的话: 有时候虽然一道题懂做了,但是发现写解题报告时,要清楚把自己的思路描述出来却挺难的。做解题报告不仅可以巩固、梳理知识,还可以加深理解。现在我还做得很不好, 一定要坚持! 加油! 矩阵链乘问题:例子:(下面第二个{P1应该是P2)void MatrixChain() {原创 2012-05-09 22:33:27 · 2440 阅读 · 2 评论 -
递推、错排公式
以前刚接触ACM时做11页,有挺多题不懂的。最近据某人说校纳新赛和杭电11页差不多,于是顺便又回来补上,收获不少,对递推有了更深的理解.SolvedPro.IDTitleAuthorSource(AC/Submit)Ratio2044一只小蜜蜂...lcy递推求解专题练习(F原创 2012-05-09 18:31:14 · 1649 阅读 · 0 评论 -
【算法导论】排序(一)
虽然久闻大名,但第一次接触算法导论,是看了网易公开课MIT的《算法导论》课,记得 第一集就讲到了插入排序和归并排序。几个星期前也买了算法导论这本书,准备慢慢啃~这星期主要在看前两部分,除了对于讲渐进时间、递归式分析这些东西感到云里雾里的,其它的都就感觉越看越有觉得入迷,果然不愧是一本经典之作好吧,开始。本文主要是用C++把书中的算法实现,以及一些笔记。一、插入排序。原创 2012-05-24 00:12:26 · 4080 阅读 · 6 评论 -
【算法导论】排序 (四):决策树、线性时间排序(计数、基数、桶排序)
到目前为止,一共整理总结了五大排序算法:1、插入排序 2、冒泡排序、选择排序、交换排序(把这三种方法归为一种,因为他们的思想本质上都是一样的)3、归并排序4、堆排序5、快速排序以上五种排序都可以称为“比较排序”,顾名思义,因为他们都是基于比较元素来决定其相对位置的。其中前两种的时间为O(n^2),归并排序和堆排序最坏O( n lg n ),快排平均O( n l原创 2012-05-27 03:21:50 · 7469 阅读 · 11 评论 -
字符串匹配
转自:http://mindlee.net/2011/11/25/string-matching/, 感谢 @酷~行天下字符串匹配的朴素算法 字符串 T = abcabaabcabac,字符串 P = abaa,判断P是否是T的子串,就是字符串匹配问题了,T 叫做文本(Text) ,P 叫做模式(Pattern),所以正确描述是,找出所有在文本 T = abcabaab转载 2012-09-28 16:26:41 · 2430 阅读 · 0 评论 -
并查集--学习详解
文章作者:yx_th000 文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。 并查集学习: l 并查集:(union-find sets)一种简单的用途广泛的集合. 并查集是若干个不相交集合,能够实现较快的合并和判断元素所在集合的操作,应用很多,如其求无向图的连通分量个转载 2012-03-07 17:53:23 · 1518 阅读 · 1 评论 -
连续邮资问题
转载自: http://blog.csdn.net/jcwkyl/article/details/4137398 By jcwKyl王晓东老师编著的《计算机算法设计与分析》5.12节以“连续邮资问题”为例展示了回溯法的应用。讲解比较简略,对于搜索出一张新的邮票面值后如何更新最大连续邮资区间这一点没有过多的说明。以下是自己对于这一节学习的一点笔记。实际上,关于刚才所说的更新最大转载 2012-07-17 14:31:34 · 5734 阅读 · 0 评论 -
各种常用字符串Hash函数比较
常用的字符串Hash函数还有ELFHash,APHash等等,都是十分简单有效的方法。这些函数使用位运算使得每一个字符都对最后的函数值产生影响。另外还有以MD5和SHA1为代表的杂凑函数,这些函数几乎不可能找到碰撞。常用字符串哈希函数有BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash等等。对于以上几种哈希函数,我对转载 2012-07-24 18:41:21 · 1565 阅读 · 0 评论 -
priority_queue(优先队列)用法总结
优先队列(priority queue) 优先级队列 是不同于先进先出队列的另一种队列。每次从队列中取出的是具有最高优先权的元素。 首先它是一个队列,但是它强调了“优先”二字,所以,已经不能算是一般意义上的队列了,它的“优先”意指取队首元素时,有一定的选择性,即根据元素的属性选择某一项值最优的出队~ 关于priority_queue1,关于STL中的prio转载 2012-03-07 11:08:01 · 6032 阅读 · 0 评论 -
尼姆博奕(Nimm Game)
尼姆博奕(Nimm Game):有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况最有意思,它与二进制有密切关系,我们用(a,b,c)表示某种局势,首先(0,0,0)显然是奇异局势,无论谁面对奇异局势,都必然失败。第二种奇异局势是(0,n,n),只要与对手拿走一样多的物品,最后都将导致(0,0,0)。仔细分析一下,(1,转载 2012-04-10 04:11:07 · 10758 阅读 · 2 评论 -
最长上升子序列(LIS)长度的O(nlogn)算法
hdu 1950 Bridging signalshttp://acm.hdu.edu.cn/showproblem.php?pid=1950===================================最长上升子序列(LIS)的典型变形,熟悉的n^2的动归会超时。LIS问题可以优化为nlogn的算法。定义d[k]:长度为k的上升子序列的最末元素,若有多个长度为k的上升子序转载 2012-04-18 19:38:13 · 52961 阅读 · 16 评论