给定一棵有根树,每个结点有权值 $a_i$,记 $c_i$ 为 $i$ 的子树中权值 $ using namespace std; define int long long const int N = 2005; vector g[N]; priority_queue hp; int ans[N], ...
分类:
其他好文 时间:
2020-03-23 09:19:09
阅读次数:
64
C++中的容器大致可以分为两个大类:顺序容器和关联容器。顺序容器中有包含有顺序容器适配器。 顺序容器:将单一类型元素聚集起来成为容器,然后根据位置来存储和访问这些元素。主要有vector、list、deque(双端队列)。顺序容器适配器:stack、queue和priority_queue。 关联容 ...
分类:
编程语言 时间:
2020-03-21 21:23:03
阅读次数:
84
简述 优先队列是stl里容器的一种,优先队列的底层结构是堆,会根据定义的优先级将优先级高的排在队首,入队和出队的时间复杂度在log(n)。 定义 优先队列默认大的在队首,字符串则为字典序由大到小。int,double,char,string类型都可以这样定义。 priority_queue<int> ...
分类:
其他好文 时间:
2020-03-21 18:03:00
阅读次数:
71
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef pair<int,int> node_pair; 4 int main(){ 5 priority_queue<node_pair,vector<node_pair>,greater ...
分类:
编程语言 时间:
2020-03-20 20:36:06
阅读次数:
129
题目描述 http://acm.hdu.edu.cn/showproblem.php?pid=1873 代码示例 #include<queue> #include<iostream> #include<string> #include<iomanip> using namespace std; st ...
分类:
其他好文 时间:
2020-03-17 21:00:50
阅读次数:
47
优先队列是建立在队列的基础上来进行求解的; 仍然具有相同的函数操作,但是唯一不同的是增加了一个新的特性:根据自定义可以对队列内输出顺序进行控制; 情况一:当如果使用普通数值来说: 简单的定义方式: priority_queue<int>q; 这种是最简单的不定义控制方式的操作,默认将队列内的元素从大 ...
分类:
编程语言 时间:
2020-03-12 18:46:50
阅读次数:
73
1 struct node{ 2 int a; 3 int cost; 4 node(int a, int cost):a(a), cost(cost){} 5 friend bool operator n2.cost; 7 } 8 }; 9 priority_queue q; ...
分类:
其他好文 时间:
2020-02-25 09:46:33
阅读次数:
73
思路:AcWing 54. 数据流中的中位数 将数组分成两半,一个大顶堆和一个小顶堆,大顶堆维护小于中位数的所有元素,小顶堆维护大于中位数的所有元素,两个堆的元素数量差不能超过2,超过2就互相匀一匀。 代码: class Solution { priority_queue<int> maxHeap; ...
分类:
其他好文 时间:
2020-02-17 14:04:03
阅读次数:
62
这个用优先队列就可以了。 在这里补充一点优先队列和队列的知识。 优先队列 大根堆:从大到小排列。小根堆:从小到大排列。优先队列就是堆,也可以自己手写堆。// 小根堆的写法priority_queue<int,vector<int>,greater<int> > vis;// 大根堆的写法priori ...
分类:
其他好文 时间:
2020-02-16 16:09:34
阅读次数:
70
题目标签:Greedy 利用priority queue, 把石头重量都存入 pq, 每次取最大两个比较,存入差值,直到pq 只剩最后一个。 Java Solution: Runtime: 1 ms, faster than 92.5% Memory Usage: 37.1 MB, less tha ...
分类:
其他好文 时间:
2020-02-15 09:16:54
阅读次数:
103