前言

堆,一种树形结构,保持最优。
两个重要操作
上浮:加入了一个元素从下向上恢复堆得性质
下沉:该变了一个元素的值,恢复堆得性质

STL priority_queue()

跟其他的STL 很像

#include <bits/stdc++.h>
using namespace std;
int main()
{
    priority_queue<int, vector<int>> pq1;               // 默认大根堆
    priority_queue<int, vector<int>, greater<int>> pq2; // 小根堆
    pq1.push(1);
    pq1.push(2);
    pq1.push(3);
    pq2.push(1);
    pq2.push(2);
    pq2.push(3);
    cout << pq1.size() << endl
         << pq1.top() << endl
         << pq2.top() << endl;
    pq2.pop(), pq1.pop();
    cout << pq1.size() << endl
         << pq1.top() << endl
         << pq2.top() << endl;
    return 0;
}
/*输出:
3
3
1
2
2
2*/

题目

P3378
P1090
P1168
P2085
P2827
P3045

posted @ 2024-11-21 22:14  流氓兔LMT  阅读(2)  评论(0编辑  收藏  举报