随笔分类 - ACM_资料
Splay Tree 介绍
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋伸展树(Splay Tree)是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Tarjan创造。它的优势在于不需要记录用于平衡树的冗余信息。在伸展树上的一般操作都基于伸展操作。查找树的相关知识 各种查找树存在不足。比如:对于一个有n个节点的平衡树,虽然最坏...
阅读全文
(转)伸展树 ( Splay tree )
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋伸展树(Splay Tree)是AVL树不错的替代,它有以下几个特点:(1)它是二叉查找树的改进,所以具有二叉查找树的有序性。(2)对伸展树的操作的平摊复杂度是O(log2n)。(3)伸展树的空间要求、编程难度非常低。提到伸展树,就不得不提到AVL树和Read-Black树,虽然这两种树能够保证各种操作在最坏情况下都为log...
阅读全文
树状数组 (Binary Indexed Trees )论文解析
摘要:Byboba5551TopCoder MemberIntroductionWe often need some sort of data structure to make our algorithms faster. In this article we willdiscuss theBinary Indexed Treesstructure. According toPeter M. Fenw...
阅读全文
HDU 1512 HDOJ 1512 Monkey King ( 左偏树 ) ACM 1512 IN HDU
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1512题目描述 :代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--Monkey...
阅读全文
左偏树详解 ( 转载 )
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋[代码]下面我们来分析合并操作的时间复杂度。从上面的过程可以看出,每一次递归合并的开始,都需要分解其中一棵树,总是把分解出的右子树参加下一步的合并。根据性质3,一棵树的距离决定于其右子树的距离,而右子树的距离在每次分解中递减,因此每棵树A或B被分解的次数分别不会超过它们各自的距离。根据性质4,分解的次数不会超过ël...
阅读全文
Bellman-Ford && SPFA 算法
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋[代码]
阅读全文
trie树--详解
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋文章作者:yx_th000文章来源:Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明,谢谢合作。关键词:trie trie树 数据结构前几天学习了并查集和trie树,这里总结一下trie。 本文讨论一棵最简单的trie树,基于英文26个字母组成的字符串,讨论插...
阅读全文
前向星+SPFA(转载)
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--前向星+SPFA我是在做USACO的sweetbutter时偶然发现这个东西的。。。这个算法,简单的说就是队列优化的bellm...
阅读全文
松弛操作
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋[代码] 单源最短路径算法中使用了松弛(relaxation)操作。对于每个顶点v∈V,都设置一个属性d[v],用来描述从源点s到v的最短路径上权值的上界,称为最短路径估计(shortest-path estimate)。π[v]代表S到v的当前最短路径中v点之前的一个点的编号,我们用下面的Θ...
阅读全文
什么是离散化?
摘要:Matrix67原创 Trackback: http://www.matrix67.com/blog/archives/108如果说今年这时候OIBH问得最多的问题是二分图,那么去年这时候问得最多的算是离散化了。对于“什么是离散化”,搜索帖子你会发现有各种说法,比如“排序后处理”、“对坐标的近似处理”等等。哪个是对的呢?哪个都...
阅读全文
[翻译]Wine完全使用指南——从基本到高级[转]
摘要:转载自 : http://forum.ubuntu.org.cn/viewtopic.php?t=72933为了回应最近网友的一些普遍问题,特此作以下说明:1、如果发现wine的注册表没有相应的键值,要自己创建。有时候用命令不行的话,只能手动一个个添加。2、wine还是一个不成熟的软件,经常出现bug,一切使用的问题和风险都只能自己承担。3、wine并不完善,不是所有程序都能用wine解决,有些甚...
阅读全文
线段树的一种简化实现[转] by 踏雪赤兔
摘要:转载自http://www.cnitblog.com/cockerel/archive/2006/09/13/16806.html相信对算法设计或者数据结构有一定了解的人对线段树都不会太陌生。它是能够在log(MaxLen)时间内完成线段的添加、删除、查询等操作。但一般的实现都有点复杂(我自写的是要递归的,比较多行)。而线段树应用中有一种是专门针对点的。(点树?)它的实现却非常简单。 这种数据结...
阅读全文
Floyd-Warshall算法详解(转)
摘要:Floyd-Warshall算法,简称Floyd算法,用于求解任意两点间的最短距离,时间复杂度为O(n^3)。我们平时所见的Floyd算法的一般形式如下:1voidFloyd(){2inti,j,k;3for(k=1;k<=n;k++)4for(i=1;i<=n;i++)5for(j=1;j<=n;j++)6if(dist[i][k]+dist[k][j]<dist[i][...
阅读全文
多重背包O(N*V)算法详解(使用单调队列)(转载)
摘要:多重背包O(N*V)算法详解(使用单调队列)多重背包问题:有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件。怎样装才能使背包内的物品总价值最大?网上关于“多重背包”的资料倒是不少,但是关于怎么实现O(N*V)算法的资料,真得好少呀,关于“单调队列”那部分算法,又没说明得很清楚,看了几遍没看懂原理,只好自己动脑去...
阅读全文
fill memset for 小测试
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋做ACM题目的时候 , 经常使用到 fill,memset , for 操作对 数据进行初始化操作, 在测试数据不大,而且数组范围也不大的情况下,这几种操作的时间差距不是很明显. 但是!!!! 因为测试数据的数量有时候非常大!!因此对数据初始化 操作的 选择也变得非常重要.于是就对3种操作进行了一个小测试............
阅读全文
学习笔记 -- 关于 STL 中的 heap ( 堆 )
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋C ++ STL 中与heap 有关的操作有 如下几个 : make_heap(), pop_heap(), push_heap(), sort_heap(), is_heap;is_heap() :原型如下 : 1.bool is_heap(iterator start, iterator end); ->...
阅读全文
STL 学习笔记 ( 二. vector )
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋vector– 一. vector可以模拟动态数组– 二. vector的元素可以是任意类型T,但必须具备赋值和拷贝能力(具有public 拷贝构造函数和重载的赋值操作符) 三.必须包含的头文件#include <vector>– 四. vector支持随机存取–...
阅读全文
标准模板库(STL)学习---List容器 ( 转载 )
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋[代码]用for循环来处理list中的元素 我们想要遍历一个list,比如打印一个中的所有对象来看看list上不同操作的结果。要一个元素一个元素的遍历一个list, 我们可以这样做: /*|| How to print the contents of a simple STL list. Whew! */#include ...
阅读全文
线段树入门 (zz)
摘要:[代码]接着回到线段树上来,线段树是建立在线段的基础上,每个结点都代表了一条线段 [a , b]。长度为1的线段成为元线段。非元线段都有两个子结点,左结点代表的线段为[a , (a + b ) / 2],右结点代表的线段为[( a + b ) / 2 , b]。图一就是一棵长度范围为[1 , 10]的线段树。 长度范围为[1 , L] 的一棵线段树的深度为log ( L - 1 ) + 1。这个显...
阅读全文
霍夫曼编码
摘要:MiYu原创, 转帖请注明 : 转载自______________白白の屋代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--霍夫曼编码是一种被广泛应用而且非常有效的数据压缩技术,根据待压缩数据的特征,一个可压缩掉20%~90%。这里考虑的数据指的是字...
阅读全文