堆--P3378 模板堆

Posted very-beginning

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了堆--P3378 模板堆相关的知识,希望对你有一定的参考价值。

题目描述

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

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

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

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

输入格式

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

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

操作1: 1 x

操作2: 2

操作3: 3

输出格式

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

因为堆默认顶部元素为最大,我们要求最小就可以取负

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <queue>
 4 using namespace std;
 5 int n,x;
 6 int m;
 7 int main()
 8 {
 9     priority_queue<int> q;
10     scanf ("%d",&m);
11     while (m--)    
12     {
13     scanf ("%d",&n);
14     if (n==1)
15     {
16         scanf ("%d",&x);
17         q.push(-x);
18     }
19     if (n==2)
20     {
21         int p=q.top();
22         cout<<-p<<endl;
23     }
24     if (n==3)
25     {
26         q.pop();
27     }
28 }
29     return 0;
30 }

 

以上是关于堆--P3378 模板堆的主要内容,如果未能解决你的问题,请参考以下文章

luogu P3378 堆模板

P3378 模板堆

P3378 模板堆

luogu P3378 模板堆

Luogu P3378 模板堆

洛谷 P3378 模板堆x