Bailian4078 实现堆结构【模拟+优先队列】
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(超时)
需要使用最小堆结构来实现本题的算法
问题链接:Bailian4078 实现堆结构
问题简述:(略)
问题分析:模拟题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)
AC的C++语言程序如下:
/* Bailian4078 实现堆结构 */#include <bits/stdc++.h>using namespace std;struct Node {int w;Node(int a) {w = a;}bool operator < (const Node &a) const {return w > a.w;}
};int main()
{int n, type, a;priority_queue<Node> q;scanf("%d", &n);while (n--) {scanf("%d", &type);if (type == 1) {scanf("%d", &a);q.push(Node(a));} else /* type = 2 */ {a = q.top().w;q.pop();printf("%d\n", a);}}return 0;
}
Bailian4078 实现堆结构【模拟+优先队列】相关推荐
- SDUT 2127 树-堆结构练习——合并果子之哈夫曼树(优先队列)
树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description ...
- Heap(堆结构/优先队列)-Swift实现
特性 堆结构很像二叉树,堆也是一个近似树形结构,堆的每个节点也最多有左.右两个孩子,但是堆实质是存储在数组中的结构,所以他和二叉树只是近似的有某些共同的特性. 第一特性,堆结构是存储在数组中的. 堆通 ...
- 树-堆结构练习——合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip
树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip ...
- 集合框架源码分析六之堆结构的实现(PriorityQueue)
/** * * 优先队列是用了一种叫做堆的高效的数据结构, * 堆是用二叉树来描述的,对任意元素n,索引从0开始,如果有子节点的话,则左子树为 * 2*n+1,右子树为2*(n+1). * 以堆实现的 ...
- 树-堆结构练习——合并果子之哈夫曼树
树-堆结构练习--合并果子之哈夫曼树 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆 ...
- Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数
堆结构 堆结构是一种优先队列,可以以任意顺序添加对象,并随时查找或删除最小(大)的元素,或者查找和删除前 K 个最小(大)元素.相比于列表方法min() / max(),这样做的效率要高得多. 堆结构 ...
- 堆——神奇的优先队列(上)
堆--神奇的优先队列(上) --转自啊哈磊[坐在马桶上看算法]算法11:堆--神奇的优先队列(上) 堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样. 有没有发现这棵二叉树有一个特点,就是所有父结 ...
- python堆结构heapq
堆是一种二叉树结构,python中的堆是小根堆.每个父节点的值都小于或等于它的任何子节点:即对于任何一个结点kkk,都满足: a[k] <= a[2*k+1] a[k] <= a[2*k+ ...
- matlab实现密堆立方体,LAMMPS如何定义六角密堆结构HCP
因为六角密堆结构的截面是六边形的,所以当我们在构建模拟盒子的时候,有可能因为觉得边界周期性不好处理,而觉得不知道如何构建. 而实际上,我们的考虑是多余的,因为LAMMPS为我们提供的HCP的原胞已经将 ...
最新文章
- Java多线程,Thread,Runnable,Callable Task,Future<Task>,CompletionService
- R构建二次回归模型( Quadratic Regression)
- struts2中struts.xml和web.xml文件解析及工作原理
- C# 集合类(四):Hashtable
- BZOJ-2337-XOR和路径
- $ npm install时候报出:npm ERR! Unexpected token in JSON at position 10841
- JUC原子类-数组类型(三)
- 轻松搞定 Shell 玩转 HiveSQL
- exchange2010 取消OWA内更改密码选项
- PHP语言的RSA算法加解密程序
- php data取年月,PHP-date函数 年、月、日参数详解
- ASP.NET Web程序设计 第五章 页面状态管理
- STM32学习——Keil5的注册步骤
- Spring: J2EE框架
- linux fedora14 u盘运行,通过U盘安装Fedora-14-i686-Live-Desktop
- Lottie动画详解
- Oracle的四分位数函数
- 使用Foxmail 登录qq邮箱使用第三发授权码登录失败
- 网站优化基本技巧(网站优化的主要工作是什么)
- 【Java实战小项目】考试系统
热门文章
- c++ error函数_回调函数地狱
- CentOS7.6安装WirёGuαrd(一)
- 串口IO、定时器、回调函数
- Ubuntu 下 svn 服务器的安装配置
- android开发那些事儿(五)-通用流行框架大全
- 谷歌和ESRI眼中的Web Mercator
- [转]详解Flex布局(语法+教程)
- Spring Boot自定义Banner
- node项目打包如何隐藏html后缀,详解webpack打包nodejs项目(前端代码)
- oracle非延迟约束,Oracle可延迟约束Deferable的使用