4078:实现堆结构
来源:互联网 发布:php 开源 客服系统 编辑:程序博客网 时间:2024/05/19 19:57
4078:实现堆结构
总时间限制: 3000ms 单个测试点时间限制: 1000ms 内存限制: 65536kB
描述
定义一个数组,初始化为空。在数组上执行两种操作:
1、增添1个元素,把1个新的元素放入数组。
2、输出并删除数组中最小的数。
使用堆结构实现上述功能的高效算法。
输入
第一行输入一个整数n,代表操作的次数。
每次操作首先输入一个整数type。
当type=1,增添操作,接着输入一个整数u,代表要插入的元素。
当type=2,输出删除操作,输出并删除数组中最小的元素。
1<=n<=100000。
输出
每次删除操作输出被删除的数字。
样例输入
4
1 5
1 1
1 7
2
样例输出
1
提示
每组测试数据的复杂度为O(nlogn)的算法才能通过本次,否则会返回TLE(超时)
需要使用最小堆结构来实现本题的算法
#include <iostream>#include<algorithm>#include<queue>#include<vector>using namespace std;//http://bailian.openjudge.cn/practice/4078///要背过最小堆的实现 int n,t,u;priority_queue<int,vector<int>,greater<int> >q;int main(int argc, char** argv) { cin>>n; while(n--){ cin>>t; if(t==1){ cin>>u; q.push(u); } if(t==2){ cout<<q.top()<<endl; q.pop(); } } return 0;}
阅读全文
0 0
- 4078:实现堆结构
- 堆结构的实现
- 1:实现堆结构
- 链式结构实现堆
- 实现堆结构
- 实现堆结构
- 实现堆结构
- C++ 堆结构(数组实现)
- 自己实现的堆结构
- C++ 堆结构(数组实现)
- 链式结构实现堆排序
- C++ 堆结构(数组实现)
- 百练 实现堆结构
- 算法-----堆结构实现优先级队列
- 基于堆结构的TopN问题实现
- java使用堆结构实现优先队列
- 堆结构的C++模板类实现
- 堆结构(一) - 二叉堆的原理与实现
- 目标检测(三)--DPM
- 8月英语--榜样的力量
- bat 文件操作
- softmax回归详解【转载】
- 分享一个bat脚本,比较文件输出是否相同,并输出第一个不同的位置
- 4078:实现堆结构
- 简单CrackMe分析(样本名:ReverseMe)
- 一个在线音乐软件的故事(五、让我们开始写代码吧)
- hdu6180Schedule(第十场贪心)
- 面试干货!21个必知数据科学面试题和答案part1(1-11)
- 如何让Maya中的相机和Unity相机的FOV(Angle of View)对上
- 蓝牙通信
- RN实现TabNavigator
- Linux下的rpm软件管理(管理软件的卸载、安装、更新)