堆,是优先队列最常用的一种实现方式。在优先队列中,每个元素都被赋予了一个优先级,而每次出队时都让优先级最高的元素出队。堆,则是一种存储优先队列的方法,特指以一棵树形式存储的优先队列。最常用的是二叉堆,但既然是专门介绍数据结构,就不妨说全一些,我们取4个典型的堆进行比较,见下表(此表及表下备注,来自于...
分类:
编程语言 时间:
2014-12-04 10:00:14
阅读次数:
169
钥匙是必须有序,蛇是不要求有序的。所以一个需要状压一个不用
因为时间计算和步数计算不同。所以要遍历整个空间,或者使用优先队列。优先时间短的。
风格就这样了.
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
#define maxn 110
using namespace std;
int N,M...
分类:
其他好文 时间:
2014-12-03 23:33:49
阅读次数:
437
Fence Repair
Time Limit: 2000MS
Memory Limit: 65536K
Total Submissions: 27742
Accepted: 9019
Description
Farmer John wants to repair a small length of the fence aro...
分类:
其他好文 时间:
2014-12-01 17:39:59
阅读次数:
182
A,B水
B的话可以花式做
线段树可以
优先队列可以
最好的方法就是离散后,对一个线段xi,yi
分成两个端点xi和yi+1
表示在xi点会加入一个线段,在yi+1会减少一个线段
用数组来存就是a[xi]++, a[yi+1]-- ,然后求a数组的最大前缀和就行了
D 题是个DP
题意是,有n(1e3)个数对,a[i],b[i]
某个人有m(1e3)个能量,按顺...
分类:
其他好文 时间:
2014-12-01 06:35:30
阅读次数:
164
优先队列包括二叉堆、d-堆、左式堆、斜堆、二项队列等
1、二叉堆
堆是一棵被完全填满的二叉树,有可能例外的是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树。
堆序的性质:在一个堆中,对于每一个节点X,X的父亲的关键字小于(或等于)X中的关键字,根节点除外(它没有父节点)。完全二叉树可以用数组实现。...
分类:
其他好文 时间:
2014-11-30 20:10:24
阅读次数:
205
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1026这题是个好题,这题是我做的第一个搜索要求输出路径的, 没有想出来,解析:优先队列+bfs+链表式找前一个点,要用到栈(stack)。运用优先队列来选取当前时间(ans)最少那个点,并且用f[][]数组...
分类:
其他好文 时间:
2014-11-29 20:12:40
阅读次数:
161
Tempter of the Bone II
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 98304/32768 K (Java/Others)
Total Submission(s): 1529 Accepted Submission(s): 407
Problem Description
The dog...
分类:
其他好文 时间:
2014-11-29 14:39:12
阅读次数:
209
The kth great number
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)
Total Submission(s): 6982 Accepted Submission(s): 2837
Problem Description
Xiao ...
分类:
其他好文 时间:
2014-11-27 23:45:30
阅读次数:
870
Merge k Sorted ListsMerge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.两种实现方法,第一种采用优先队列,第二种采用分治/**
* Definition for singly-linked list.
* struct ListNo...
分类:
其他好文 时间:
2014-11-27 20:36:39
阅读次数:
227