随笔分类 - 算法笔记
摘要:树的遍历是数据结构最基本的问题之一。 前序遍历: 先遍历根节点 -> 左孩子 -> 右孩子 (根左右) 中序遍历: 左孩子 -> 遍历根节点 -> 右孩子 (左根右) 后序遍历: 左孩子 -> 右孩子 -> 最后遍历根节点 (左右根) 递归的每一步都是一个子问题,即树是由根与其左子树,右子树构成的,
阅读全文
posted @ 2018-01-22 20:09
proscientist
摘要:背包问题九讲非常有助于入门动态规划,但是来源出处不可考,以下仅列出个人认为其中很有帮助的节选: 背包问题与动态规划的基本思想 网上有很多关于背包问题和动态规划的代码实现文章,但是如何理解动态规划的思想才是最关键的,尤其如何理解成这是一个多阶段的决策过程尤为重要,下面的这个动态规划讲解非常好,主要从两
阅读全文
posted @ 2018-01-16 11:56
proscientist
摘要:树这种数据结构容易出现极端情况,因为在建树的过程中,树的最终形态严重依赖于输入数据本身的性质,比如数据是否排序,是否随机分布等等。比如在输入数据是有序的情况下,构造的BST会退化成一个链表。(BST可以演变成为红黑树或者AVL树等来克服。) 但当我们仅需要连通与否的信息时,层层查找的效率就会很低,这
阅读全文
posted @ 2018-01-16 09:28
proscientist
摘要:非常推荐一篇博文: http://blog.csdn.net/c20180630/article/details/61412609 这篇博文看完之后,可以继续搜索 [浙江大学 acm程序设计竞赛 培训 线段树],查看更多线段树的应用 前面的导入很好,后面还介绍了树状数组,以及树状数组的二维应用,值得
阅读全文
posted @ 2018-01-11 16:33
proscientist
摘要:Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高。核心思想是空间换时间。利用字符串的公共前缀来降低查询时间的
阅读全文
posted @ 2017-12-28 16:52
proscientist
摘要:STL库中可以用优先队列实现堆,以下是自己写的堆及其接口 练习题: /*Poj 2431 Heap 题意:一辆卡车要行驶L单位距离。最开始时,卡车上有P单位汽油,每向前行驶1单位距离消耗1单位汽油。如果在途中车上的汽油耗尽,则无法到达终点。途中共有N个加油站,加油站提供的油量有限,卡车的油箱无限大。
阅读全文
posted @ 2017-12-28 16:48
proscientist
摘要:KM算法 KM算法用来求二分图最大权完美匹配 一般对KM算法的描述,基本上可以概括成以下几个步骤: (1) 初始化可行标杆 (2) 用匈牙利算法寻找完备匹配 (3) 若未找到完备匹配则修改可行标杆 (4) 重复(2)(3)直到找到相等子图的完备匹配 入门题:HDU2255,复杂度应该是O(N^3)
阅读全文
posted @ 2017-12-28 16:41
proscientist

浙公网安备 33010602011771号