【模板】堆

题目描述

如题,初始小根堆为空,我们需要支持以下3种操作:

操作1: 1 x 表示将x插入到堆中

操作2: 2 输出该小根堆内的最小数

操作3: 3 删除该小根堆内的最小数

输入输出格式

输入格式:

第一行包含一个整数N,表示操作的个数

接下来N行,每行包含1个或2个正整数,表示三种操作,格式如下:

操作1: 1 x

操作2: 2

操作3: 3

输出格式:

包含若干行正整数,每行依次对应一个操作2的结果。

输入输出样例

输入样例#1:

5
1 2
1 5
2
3
2

输出样例#1:

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 优先队列(堆)相关推荐

  1. STL优先队列实现堆(模板 附力扣题目)

    讲解视频:https://www.bilibili.com/video/BV12i4y1f7ky/ 堆的本质 堆是一种特殊的完全二叉树.每一个节点的值都大于等于或者小于等于其孩子节点的值. 堆的操作时 ...

  2. stl优先队列定义可以吗_C ++ STL | 用户定义的优先级队列比较器

    stl优先队列定义>可以吗 In this article, we are going to see how to write your comparator function for prio ...

  3. [算法系列]优先队列,堆与堆排序

    优先队列,堆与堆排序 1 优先队列 有时我们在处理有序元素时,并不一定要求他们全部有序. 很多情况下我们会收集一些元素, 处理当前最大的元素, 然后再收集更多元素, 再处理当前最大元素 - 这种情况下 ...

  4. c语言将数组的列项向左移动,【数据结构与算法分析——C语言描述】第六章:优先队列(堆)...

    第六章:优先队列(堆) [TOC] 思考如下场景,老师布置了很多作业,现在你需要将作业打印出来,你将作业文件依照队列的形式放入待打印列表中,但此时,你希望最重要(或者是马上就要上交)的作业优先打印出来 ...

  5. C++STL优先队列小根堆大根堆自定义的应用

    小根堆 greater #include<iostream> #include<queue> using namespace std; priority_queue<in ...

  6. 【BHOJ 女娲加农炮 |、||】贪心 | 优先队列 | 堆 | E

    这次我们通过两道例题来总结一下优先队列的用法和实现: 目录: [BHOJ 1512]女娲加农炮 [BHOJ 1517]女娲加农炮II [BHOJ 1512]女娲加农炮 核心:贪心 + 优先队列 URL ...

  7. java合并果子_C++(STL)树-堆结构练习——合并果子之哈夫曼树

    priority_queue 对于基本类型的使用方法相对简单. 他的模板声明带有三个参数,priority_queue Type 为数据类型, Container 为保存数据的容器,Functiona ...

  8. NOIp 数据结构专题总结 (1):STL、堆、并查集、ST表、Hash表

    系列索引: NOIp 数据结构专题总结 (1) NOIp 数据结构专题总结 (2) STL structure std::vector #include <vector> std::vec ...

  9. C++ STL 优先队列

    //优先队列 //Priority_queue //STL #include<iostream> #include<cstdio> #include<cstdlib> ...

最新文章

  1. Linux下SVN服务器支持Apache的http和svnserve独立服务器
  2. Back-propagation, an introduction
  3. onethink不能安装到已经存在的数据库中的问题
  4. FewRel 2.0数据集:以近知远,以一知万,少次学习新挑战
  5. 分布式文件系统—HDFS—基本介绍
  6. python正则中如何匹配汉字以及encode(‘utf-8’)和decode(‘utf-8’)的互转
  7. 什么是Web Server
  8. android jersey 上传图片,图片上传--Jersey实现RESTful接口
  9. 在屏幕中间分别显示绿色、绿低红色、白底蓝色的字符串'welcome to masm!'
  10. kux格式怎么转换成mp3_优酷kux1080转码工具 1080p kux格式转换mp4|优酷kux格式转换成MP4格式...
  11. 等保二级费用_二级等保测评费用标准_测评费用
  12. 腾讯的企业级分布式 HTAP 数据库管理系统 TBase 正式开源
  13. 通过负载均衡器+域名实现容灾切换-(11)深信服负载均衡器
  14. 区块链网络管理平台WeBASE双节点可视化部署
  15. iPad/iPhone与电脑共享文件
  16. 计算机网络网速,科普 | 宽带的分类及网速计算
  17. HDU1273-漫步森林
  18. 论文解读:《XG‑ac4C:使用带有电子离子相互作用假电位的eXtreme梯度增强技术鉴定mRNA中的N4-乙酰胞苷(ac4C)》
  19. 安卓开发5-fragment和activity
  20. java24设计模式思维导图以及源码配置,思维导图使用幕布处理

热门文章

  1. struct device结构体(2.6.23)
  2. 定义返回函数指针(地址)的函数
  3. 对话框应用程序的DoModal()源代码
  4. C++_函数的定义_函数调用_值传递_函数常见的样式_函数声明(重要)_函数分文件编写---C++语言工作笔记022
  5. 大数据之-Hadoop完全分布式_虚拟机环境准备---大数据之hadoop工作笔记0030
  6. STM32工作笔记006---常见硬件介绍-以及常见术语--随时更新
  7. 1.C#基础学习笔记3---C#字符串(转义符和内存存储无关)
  8. android学习笔记---38_采用广播接收者拦截外拔电话,实现原理以及实例源码
  9. oracle学习笔记---oracle10g 卸载方法
  10. 图的深度优先搜索(DFS)