stl 优先队列(堆)
【模板】堆
题目描述
如题,初始小根堆为空,我们需要支持以下3种操作:
操作1: 1 x 表示将x插入到堆中
操作2: 2 输出该小根堆内的最小数
操作3: 3 删除该小根堆内的最小数
输入输出格式
输入格式:
第一行包含一个整数N,表示操作的个数
接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:
操作1: 1 x
操作2: 2
操作3: 3
输出格式:
包含若干行正整数,每行依次对应一个操作2的结果。
输入输出样例
5 1 2 1 5 2 3 2
2 5
说明
时空限制:1000ms,128M
数据规模:
对于30%的数据:N<=15
对于70%的数据:N<=10000
对于100%的数据:N<=1000000(注意是6个0。。。不过不要害怕,经过编者实测,堆是可以AC的)
#include<cstdio> #include<cstring> #include<queue> using namespace std; priority_queue<int,vector<int>,greater<int> >q; int main() {int n;scanf("%d",&n);int pd;for(int i=1;i<=n;i++){scanf("%d",&pd);if(pd==1) {int v;scanf("%d",&v);q.push(v);}if(pd==2){printf("%d\n",q.top());}if(pd==3){q.pop();}}return 0; }
View Code
一直不会stl堆(以前一直手写堆),今天终于学会了,谢谢cyc的指导;
下来是一道运用stl堆的题----合并果子;
#include<cstdio> #include<algorithm> #include<cstring> #include<queue> using namespace std; int n; priority_queue<int,vector<int>,greater<int> >q; int map[10010]; int main() {scanf("%d",&n);int ans=0;for(int i=1;i<=n;i++) scanf("%d",&map[i]),q.push(map[i]);for(int i=2;i<=n;i++){int v=q.top();q.pop();int u=q.top();q.pop();ans+=v+u;q.push(v+u);}printf("%d",ans);return 0; }
View Code
eg:1724: [Usaco2006 Nov]Fence Repair 切割木板 逆的合并果子
转载于:https://www.cnblogs.com/12fs/p/7367898.html
stl 优先队列(堆)相关推荐
- STL优先队列实现堆(模板 附力扣题目)
讲解视频:https://www.bilibili.com/video/BV12i4y1f7ky/ 堆的本质 堆是一种特殊的完全二叉树.每一个节点的值都大于等于或者小于等于其孩子节点的值. 堆的操作时 ...
- stl优先队列定义可以吗_C ++ STL | 用户定义的优先级队列比较器
stl优先队列定义>可以吗 In this article, we are going to see how to write your comparator function for prio ...
- [算法系列]优先队列,堆与堆排序
优先队列,堆与堆排序 1 优先队列 有时我们在处理有序元素时,并不一定要求他们全部有序. 很多情况下我们会收集一些元素, 处理当前最大的元素, 然后再收集更多元素, 再处理当前最大元素 - 这种情况下 ...
- c语言将数组的列项向左移动,【数据结构与算法分析——C语言描述】第六章:优先队列(堆)...
第六章:优先队列(堆) [TOC] 思考如下场景,老师布置了很多作业,现在你需要将作业打印出来,你将作业文件依照队列的形式放入待打印列表中,但此时,你希望最重要(或者是马上就要上交)的作业优先打印出来 ...
- C++STL优先队列小根堆大根堆自定义的应用
小根堆 greater #include<iostream> #include<queue> using namespace std; priority_queue<in ...
- 【BHOJ 女娲加农炮 |、||】贪心 | 优先队列 | 堆 | E
这次我们通过两道例题来总结一下优先队列的用法和实现: 目录: [BHOJ 1512]女娲加农炮 [BHOJ 1517]女娲加农炮II [BHOJ 1512]女娲加农炮 核心:贪心 + 优先队列 URL ...
- java合并果子_C++(STL)树-堆结构练习——合并果子之哈夫曼树
priority_queue 对于基本类型的使用方法相对简单. 他的模板声明带有三个参数,priority_queue Type 为数据类型, Container 为保存数据的容器,Functiona ...
- NOIp 数据结构专题总结 (1):STL、堆、并查集、ST表、Hash表
系列索引: NOIp 数据结构专题总结 (1) NOIp 数据结构专题总结 (2) STL structure std::vector #include <vector> std::vec ...
- C++ STL 优先队列
//优先队列 //Priority_queue //STL #include<iostream> #include<cstdio> #include<cstdlib> ...
最新文章
- Linux下SVN服务器支持Apache的http和svnserve独立服务器
- Back-propagation, an introduction
- onethink不能安装到已经存在的数据库中的问题
- FewRel 2.0数据集:以近知远,以一知万,少次学习新挑战
- 分布式文件系统—HDFS—基本介绍
- python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转
- 什么是Web Server
- android jersey 上传图片,图片上传--Jersey实现RESTful接口
- 在屏幕中间分别显示绿色、绿低红色、白底蓝色的字符串'welcome to masm!'
- kux格式怎么转换成mp3_优酷kux1080转码工具 1080p kux格式转换mp4|优酷kux格式转换成MP4格式...
- 等保二级费用_二级等保测评费用标准_测评费用
- 腾讯的企业级分布式 HTAP 数据库管理系统 TBase 正式开源
- 通过负载均衡器+域名实现容灾切换-(11)深信服负载均衡器
- 区块链网络管理平台WeBASE双节点可视化部署
- iPad/iPhone与电脑共享文件
- 计算机网络网速,科普 | 宽带的分类及网速计算
- HDU1273-漫步森林
- 论文解读:《XG‑ac4C:使用带有电子离子相互作用假电位的eXtreme梯度增强技术鉴定mRNA中的N4-乙酰胞苷(ac4C)》
- 安卓开发5-fragment和activity
- java24设计模式思维导图以及源码配置,思维导图使用幕布处理
热门文章
- struct device结构体(2.6.23)
- 定义返回函数指针(地址)的函数
- 对话框应用程序的DoModal()源代码
- C++_函数的定义_函数调用_值传递_函数常见的样式_函数声明(重要)_函数分文件编写---C++语言工作笔记022
- 大数据之-Hadoop完全分布式_虚拟机环境准备---大数据之hadoop工作笔记0030
- STM32工作笔记006---常见硬件介绍-以及常见术语--随时更新
- 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
- android学习笔记---38_采用广播接收者拦截外拔电话,实现原理以及实例源码
- oracle学习笔记---oracle10g 卸载方法
- 图的深度优先搜索(DFS)