【洛谷】P3378 【模板】堆

简介: 洛谷 P3378 【模板】堆

1. 题目描述

image.png

2. 思路分析

一道模板题,主要是熟悉STL中优先队列(priority_queue)的使用。

堆的STL实现:

priority_queue q; //这是一个大根堆q(默认为大根堆)

priority_queue,greater >q; //这是一个小根堆q

优先队列的操作:

q.top(); //取得堆顶元素,并不会弹出
q.pop(); //弹出堆顶元素
q.push(); //往堆里面插入一个元素
q.empty(); //查询堆是否为空,为空则返回1,否则返回0
q.size(); //查询堆内元素数量

3. 代码实现

#include<bits/stdc++.h>
using namespace std;
using ll = long long;

void solve() {
   
   
    int n; cin >> n;
    priority_queue <ll, vector<ll>, greater<ll>>pq;
    while (n--) {
   
   
        int op; cin >> op;
        if (op == 1) {
   
   
            int x; cin >> x;
            pq.push(x);
        }
        else if (op == 2) {
   
   
            cout << pq.top() << '\n';
        }
        else {
   
   
            pq.pop();
        }
    }
}

int main() {
   
   
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    solve();
    return 0;
}

image.png

相关文章
|
6月前
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
【每日一题Day361】LC2558从数量最多的堆取走礼物 | 大顶堆
39 0
|
5月前
洛谷 P3378 【模板】堆
洛谷 P3378 【模板】堆
26 0
|
6月前
|
存储 机器学习/深度学习 算法
数据结构与算法⑬(第四章_中_续二)堆解决Topk问题+堆的概念选择题
数据结构与算法⑬(第四章_中_续二)堆解决Topk问题+堆的概念选择题
53 3
|
6月前
|
存储 算法 C++
数据结构第十一弹---堆
数据结构第十一弹---堆
|
6月前
|
算法 搜索推荐
数据结构第十二弹---堆的应用
数据结构第十二弹---堆的应用
|
SQL 人工智能 开发框架
线段树模板+例题
线段树模板+例题
77 1
洛谷—模板字典树 P8306
洛谷—模板字典树 P8306
87 0
|
存储 算法
【数据结构】--- 博主拍了拍你并向你扔了一“堆”二叉树(堆的概念+结构+代码实现)
数据结构学习第十三弹——二叉树——堆的概念+结构+代码实现
|
存储 算法 C++
单调栈模板总结及应用
单调栈模板总结及应用
95 0