二叉堆,是一个满二叉树,满足堆的性质。即父节点大于等于子节点(max heap)或者是父节点小于等于子节点(min heap)。二叉堆的如上性质常用于优先队列(priority queue)或是用于堆排序。
由于max heap 与min heap类似,下文只针对min heap进行讨论和实现。
如上图,是根据字母的ASCII码建立的最小堆。
我们用数组对满二叉树采用宽度优先遍历存储...
分类:
编程语言 时间:
2015-03-07 15:41:40
阅读次数:
178
链接: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1613
Description :
小z身处在一个迷宫中,小z每分钟可以走到上下左右四个方向的相邻格之一。迷宫中有一些墙和障碍物。
同时迷宫中也有一些传送门,当小z走到任意一个传送门时,可以选择传送到其他任意的传送门(传送是不花费...
分类:
其他好文 时间:
2015-03-07 14:09:42
阅读次数:
175
题意: 有m(m#include #include using namespace std;struct node { int p, val; bool operator val; }} tem;priority_queue ql;int ans[1009];int n, m,...
分类:
其他好文 时间:
2015-03-07 13:50:15
阅读次数:
119
1.heap
heap不属于STL容器组件,它是priority queue的底层实现机制。
(1)push_heap算法
向堆中加入元素,首先将要加入的元素放到堆所在数组的末端,然后再对这个元素进行上溯操作,直到新堆合法为止。如下图所示:
(2)pop_heap算法
pop_heap操作取走堆中的最大(小)值。根据堆的特性,堆的最大(小)值必定是堆所存...
分类:
其他好文 时间:
2015-03-06 16:35:21
阅读次数:
165
“蛇和梯子”是一个在NXN的(0
方格从1到N的平方编号。除了第1号和最后编号的方格,其它的格子都有可能有蛇或梯子存在(蛇和梯子的数量及具体位置由输入确定,它们的数量都在100之内并且蛇和梯子不能临近放置,也就是在任何了放置两者首尾的方格之间至少还有一个未放置任何东西的格子)。开始的时候玩家把他们的标志物放在1号格子中。玩家轮流以扔骰子的方式移动他们的指示物。如果一个指示物到达了一条蛇的...
分类:
其他好文 时间:
2015-03-03 16:40:57
阅读次数:
141
题意:给定一个长度为n的序列,依次求出(i,i+k-1) (i∈(0,n-1),i
本题有多种解法。首先,暴力的时间复杂度是O((n-k)*klogk),所以pass。
解法1:维护一个单调递增的队列(手写),队头即为最小值。同理求出最大值。
解法2:维护一个优先队列(priority_queue即可)
解法3:线段树
这里给出单调队列解法:
#include
#inc...
一段清理缓存的代码如下:dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{ NSString*cachPath = [NSSearchPathForDirectoriesInD...
分类:
移动开发 时间:
2015-03-02 18:27:51
阅读次数:
135
dispatch_async(dispatch_get_main_queue, ^(void) {});dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void) {});static d...
分类:
其他好文 时间:
2015-03-02 18:10:02
阅读次数:
197
1,dispatch_set_target_queue dispatch_queue_t serialQueue = dispatch_queue_create("com.example", NULL);
dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND...
分类:
其他好文 时间:
2015-02-28 14:44:27
阅读次数:
153
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0) , ^{.....dispatch_async(dispatch_get_main_queue(...
分类:
编程语言 时间:
2015-02-26 18:31:24
阅读次数:
158