[toc] 一、 定义 ? 我们知道,左式堆每次操作的时间界是$O(logN)$。二项队列支持 合并、插入、删除最小值 ,每次插入的平均时间为 常数时间 ,而最坏时间是$O(logN)$。 ? 二项队列: 不是一棵堆序的树,而是堆序的树的集合,成为 森林 。 森林的每棵树都是 二项树(binomia ...
分类:
其他好文 时间:
2019-04-01 22:45:25
阅读次数:
172
C. Playlist time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output C. Playlist time limit per t ...
分类:
其他好文 时间:
2019-03-31 09:39:29
阅读次数:
272
一、什么是优先队列? 普通队列:先进先出,后进后出 优先队列:出队顺序和入队顺序无关,和优先级相关。 优先队列的实现: 二、堆的基本实现 二叉堆的特点:这很重要!!! 是核心 任意节点小于其父节点 除了最后一层叶子节点外,其他层的元素个数必须是最大值 ,叶子节点虽然可以不是最大值,但必须靠左排列(最 ...
分类:
编程语言 时间:
2019-03-26 00:54:37
阅读次数:
170
三、堆排序(Heapsort) 优先队列可以用于O(N log N) 存储空间增加一倍 排序类别 排序方法 时间复杂度 时间复 杂度 空间复杂度 稳定性 复杂性 平均情况 最坏情况 最好情况 选择排序 堆排序 O(nlog2n) O(nlog2n) O(nlog2n) O(1) 不稳定 较复杂 堆排 ...
分类:
编程语言 时间:
2019-03-25 10:31:01
阅读次数:
177
Codeforces 332 C 我爱对拍,对拍使我快乐。。。 题意:有$n$个议题,学生们会让议会同意$p$个,其中主席会执行$k$个, 每一个议题执行后主席会掉$a_i$的头发,不执行后议会会增加$b_i$的不开心值, 然后主席想让议会的不开心值最小,如果有多重方案就选自己头发掉的最少的; 而学 ...
分类:
其他好文 时间:
2019-03-24 23:30:59
阅读次数:
254
RT,即将退役的人懒得一篇篇写题解,于是有了这个东西 CF1004E 树上选一条不超过k个点的链,最小化其余点到链上点的最大距离 这个思路很有意思,不像平时一般的树上问题,是从叶子开始一点点贪心合并直到合得只剩一条链,这条链就是最后的答案 用优先队列完成,复杂度$O(n\log n)$ 1 #inc ...
分类:
其他好文 时间:
2019-03-23 22:36:28
阅读次数:
175
优先队列基于最大堆的实现: package queue; import binaryHeap.MaxHeap; /** * 基于最大堆的优先队列 * @author DELL * */public class PriorityQueue<E extends Comparable<E>> implem ...
分类:
其他好文 时间:
2019-03-23 14:37:18
阅读次数:
137
一、前言 本文的目的是探讨最短路径与差分约束之间的关系。为了方便理解,本文将从存储图的数据结构,最短路径的算法,以及最短路径算法和差分约束之间的相互转换关系来讨论。而基于最短路径的有一个著名的三角形不等式,即两边之和大于第三边或者两边只差小于第三边,a+b c和a b 工欲善其事必先利其器,为了更好 ...
分类:
其他好文 时间:
2019-03-19 15:02:45
阅读次数:
178
Dijkstra+ 链式前向星+ 优先队列 Dijkstra算法 Dijkstra最短路算法,个人理解其本质就是一种广度优先搜索。先将所有点的最短距离Dis[ ]都刷新成∞(涂成黑色),然后从起点x (Dis[x]= 0, Dis[]值最小 )开始查询;先将x 加入(涂成灰色),对x 的所有边进行遍 ...
分类:
其他好文 时间:
2019-03-18 13:42:56
阅读次数:
180
题目大意: 在n个点 m条边的无向图中 需要运送X单位牛奶 每条边有隐患L和容量C 则这条边上花费时间为 L+X/C 求从点1到点n的最小花费 优先队列维护 L+X/C 最小 广搜到点n #include <bits/stdc++.h> using namespace std; #define LL ...
分类:
其他好文 时间:
2019-03-17 13:41:49
阅读次数:
168