heapq python内置的堆排序模块,本质上是一个优先队列, 常用方法 heapq.heapify(li) : 根据给定的数据集进行构建堆 heapq.heappush() : heapq.heappop() : 每执行一次,从堆中弹出一个最小的。 ...
分类:
其他好文 时间:
2020-03-25 13:51:13
阅读次数:
124
tokitsukaze and Soldier + 题目链接: "https://ac.nowcoder.com/acm/problem/50439" 涉及知识点: + 优先队列/贪心 solution: + 每个士兵都有战力Vi和一个限制Si,我们先按照每个士兵的Si从大到小进行排序 + 然后我们 ...
分类:
其他好文 时间:
2020-03-25 13:49:20
阅读次数:
84
结构体+优先队列+贪心 #include <iostream> #include <cstdio> #include <cstring> #include <limits> //#include <stack> #include<queue> #include <algorithm> #define ...
分类:
其他好文 时间:
2020-03-21 21:23:32
阅读次数:
65
简述 优先队列是stl里容器的一种,优先队列的底层结构是堆,会根据定义的优先级将优先级高的排在队首,入队和出队的时间复杂度在log(n)。 定义 优先队列默认大的在队首,字符串则为字典序由大到小。int,double,char,string类型都可以这样定义。 priority_queue<int> ...
分类:
其他好文 时间:
2020-03-21 18:03:00
阅读次数:
71
类快排算法 由于只要求找出第k大的数,没必要将数组中所有值都排序。 快排中的partition算法,返回key在数组中的位置的cnt(相对于left的偏移量),如果cnt正好等于k,那么问题则得到解决;如果cnt小于k,去左边找第k个;如果cnt>k,则去右边找第k-cnt个。直到key的位置等于k ...
分类:
编程语言 时间:
2020-03-19 21:27:51
阅读次数:
75
Tokens on the Segments Time Limit: 1000 msMemory Limit: 65536 KB Consider segments on a two-dimensional plane, where the endpoints of the -th segment ...
分类:
其他好文 时间:
2020-03-18 18:57:20
阅读次数:
98
假设堆中存int类型的数据,直接一波PriorityQueue<Integer> queue = new PriorityQueue<>();即可完成小顶堆的构建,直接A了,因为默认的用new创建优先队列对象为小顶堆。 但是如何完成大顶堆的构建呢? 先介绍一种简洁的写法,利用lambda表达式来操作 ...
分类:
其他好文 时间:
2020-03-17 19:20:54
阅读次数:
140
优先队列是建立在队列的基础上来进行求解的; 仍然具有相同的函数操作,但是唯一不同的是增加了一个新的特性:根据自定义可以对队列内输出顺序进行控制; 情况一:当如果使用普通数值来说: 简单的定义方式: priority_queue<int>q; 这种是最简单的不定义控制方式的操作,默认将队列内的元素从大 ...
分类:
编程语言 时间:
2020-03-12 18:46:50
阅读次数:
73
堆 优先队列 前置知识:二叉树。 参考资料 暂无 堆就是优先队列,可以用来解决动态区间查询最值问题。 堆就是一个完全二叉树,可以插入节点,删除根节点(也可以删除特定节点)。 为了方便,普通的堆节点 $i$ 的父亲就是 $[i\div2]$ ($[x]$ 表示不超过 $x$ 的最大整数)。 节点 $i ...
分类:
其他好文 时间:
2020-03-08 09:19:45
阅读次数:
60