码迷,mamicode.com
首页 > 其他好文 > 详细

堆--P3378 【模板】堆

时间:2020-01-17 09:22:17      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:初始   输入   while   模板   最大   元素   ret   code   结果   

题目描述

如题,初始小根堆为空,我们需要支持以下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 【模板】堆

标签:初始   输入   while   模板   最大   元素   ret   code   结果   

原文地址:https://www.cnblogs.com/very-beginning/p/12204066.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!