随笔分类 - 数据结构
摘要:归并排序:时间复杂度为O(nlogn) 这是该算法中最好、最坏和平均的时间性能。空间复杂度为 O(n)归并排序比较占用内存,但却是一种效率高且稳定的算法。速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。具体思路是,在归并的过程中计算每个小区间的逆序对数,进而计算出大...
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=45522给定一棵树的n个节点,每个节点标号在1到n之间,1是树的根节点,有如下两种操作:M v :把编号为v的节点标记。Q v :查询与v节点距离最近的被标记的点的编号。最初只有...
阅读全文
摘要:http://poj.org/problem?id=2236由于发生了地震,有关组织组把一圈电脑一个无线网,但是由于余震的破坏,所有的电脑都被损坏,随着电脑一个个被修好,无线网也逐步恢复工作,但是由于硬件的限制,一台电脑和另一台电脑能够相连当他们之间的距离小于d,或者还有一台电脑当中介,分别与两台电...
阅读全文
摘要:http://poj.org/problem?id=2010"Moo U"大学有一种非常严格的入学考试(CSAT) ,每头小牛都会有一个得分。然而,"Moo U"大学学费非常昂贵,并非每一头小牛都能支付的起,很多小牛都需要经济援助,但是学校只有有限的资金F。"Moo U"大学只会从C个学生里选N个学...
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1829http://poj.org/problem?id=2492臭虫有两种性别,并且只有异性相吸,给定n条臭虫(编号1-n)和m对关系,判断是否是出现同性恋的情况。这题跟食物链的题类似,这里只有两种关系,关系是同...
阅读全文
摘要:http://poj.org/problem?id=3614有c头奶牛在沙滩上晒太阳,每头奶牛能忍受的阳光强度有一个最大值(max_spf) 和最小值(min_spf),奶牛有L种防晒霜,每种可以固定阳光强度在某一个值,每种的数量是cover[i] ,每头奶牛只能用一瓶防晒霜,问最多有多少头奶牛能在...
阅读全文
摘要:http://poj.org/problem?id=1182关于并查集 很好的一道题,开始也看了一直没懂。这次是因为《挑战程序设计竞赛》书上有讲解看了几遍终于懂了。是一种很好的思路,跟网上其他的不太一样。因为N和K很大,所以必须高效维护动物之间的关系,并快速判断是否产生了矛盾,并查集是维护 "属于同...
阅读全文
摘要:并查集的特点:1.可以高效查询元素 a 和元素b是否属于同一组2.合并元素a和元素b所在的组 (无法分割)初始化:n个节点来表示元素,最开始没有边。合并:从一个组的跟向另一个组连边,这样两棵树就变成了一棵树,也就把两个组合并为一个组了。查询:为了查询两个节点是否属于同一个组,我们需要沿着树往上走,来...
阅读全文
摘要:书上实现:二叉搜索数的特点:高效实现 插入一个数值,查询是否包含某个数值,删除某一个数值。所有的节点都满足左子树上的所有节点都比自己的小,而右子树上的所有节点都比自己大的特点。查询:如果当前数值等于根节点返回true,比根节点小,就往左儿子走,否则往右儿子走。插入:按照查找数值的方法去找其所在位置,...
阅读全文
摘要:http://poj.org/problem?id=2431你需要驾驶一辆卡车做一次长途旅行,但是卡车每走一单位就会消耗掉一单位的油,如果没有油就走不了,为了修复卡车,卡车需要被开到距离最近的城镇,在当前位置和城镇之间有n个加油站可以加油。为了减少危险,需要最少的加油次数,卡车的油箱可以看作无限大,...
阅读全文
摘要:基本思想: 两种操作都跟树的深度成正比,所以复杂度 O(log(n)) ;push():在向堆中插入数值时,首先在堆的末尾插入该数值,然后不断向上提直到没有大小颠倒为止。pop(): 从堆中取出一个数值时,首先把堆的最后一个节点的数值复制到根节点上,并且删除最后一个节点,然后不断向下交换直到没有大小...
阅读全文

浙公网安备 33010602011771号