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 实现堆结构【模拟+优先队列】相关推荐

  1. SDUT 2127 树-堆结构练习——合并果子之哈夫曼树(优先队列)

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description ...

  2. Heap(堆结构/优先队列)-Swift实现

    特性 堆结构很像二叉树,堆也是一个近似树形结构,堆的每个节点也最多有左.右两个孩子,但是堆实质是存储在数组中的结构,所以他和二叉树只是近似的有某些共同的特性. 第一特性,堆结构是存储在数组中的. 堆通 ...

  3. 树-堆结构练习——合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip

    树-堆结构练习--合并果子之哈夫曼树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Descrip ...

  4. 集合框架源码分析六之堆结构的实现(PriorityQueue)

    /** * * 优先队列是用了一种叫做堆的高效的数据结构, * 堆是用二叉树来描述的,对任意元素n,索引从0开始,如果有子节点的话,则左子树为 * 2*n+1,右子树为2*(n+1). * 以堆实现的 ...

  5. 树-堆结构练习——合并果子之哈夫曼树

    树-堆结构练习--合并果子之哈夫曼树 Description 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.多多决定把所有的果子合成一堆. 每一次合并,多多可以把两堆 ...

  6. Python中的堆实现:heapq 模块——利用堆结构实现快速访问数据流中的中位数

    堆结构 堆结构是一种优先队列,可以以任意顺序添加对象,并随时查找或删除最小(大)的元素,或者查找和删除前 K 个最小(大)元素.相比于列表方法min() / max(),这样做的效率要高得多. 堆结构 ...

  7. 堆——神奇的优先队列(上)

    堆--神奇的优先队列(上) --转自啊哈磊[坐在马桶上看算法]算法11:堆--神奇的优先队列(上) 堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样. 有没有发现这棵二叉树有一个特点,就是所有父结 ...

  8. python堆结构heapq

    堆是一种二叉树结构,python中的堆是小根堆.每个父节点的值都小于或等于它的任何子节点:即对于任何一个结点kkk,都满足: a[k] <= a[2*k+1] a[k] <= a[2*k+ ...

  9. matlab实现密堆立方体,LAMMPS如何定义六角密堆结构HCP

    因为六角密堆结构的截面是六边形的,所以当我们在构建模拟盒子的时候,有可能因为觉得边界周期性不好处理,而觉得不知道如何构建. 而实际上,我们的考虑是多余的,因为LAMMPS为我们提供的HCP的原胞已经将 ...

最新文章

  1. Java多线程,Thread,Runnable,Callable Task,Future<Task>,CompletionService
  2. R构建二次回归模型( Quadratic Regression)
  3. struts2中struts.xml和web.xml文件解析及工作原理
  4. C# 集合类(四):Hashtable
  5. BZOJ-2337-XOR和路径
  6. $ npm install时候报出:npm ERR! Unexpected token in JSON at position 10841
  7. JUC原子类-数组类型(三)
  8. 轻松搞定 Shell 玩转 HiveSQL
  9. exchange2010 取消OWA内更改密码选项
  10. PHP语言的RSA算法加解密程序
  11. php data取年月,PHP-date函数 年、月、日参数详解
  12. ASP.NET Web程序设计 第五章 页面状态管理
  13. STM32学习——Keil5的注册步骤
  14. Spring: J2EE框架
  15. linux fedora14 u盘运行,通过U盘安装Fedora-14-i686-Live-Desktop
  16. Lottie动画详解
  17. Oracle的四分位数函数
  18. 使用Foxmail 登录qq邮箱使用第三发授权码登录失败
  19. 网站优化基本技巧(网站优化的主要工作是什么)
  20. 【Java实战小项目】考试系统

热门文章

  1. c++ error函数_回调函数地狱
  2. CentOS7.6安装WirёGuαrd(一)
  3. 串口IO、定时器、回调函数
  4. Ubuntu 下 svn 服务器的安装配置
  5. android开发那些事儿(五)-通用流行框架大全
  6. 谷歌和ESRI眼中的Web Mercator
  7. [转]详解Flex布局(语法+教程)
  8. Spring Boot自定义Banner
  9. node项目打包如何隐藏html后缀,详解webpack打包nodejs项目(前端代码)
  10. oracle非延迟约束,Oracle可延迟约束Deferable的使用