news 2026/7/15 5:35:32

STL专项:priority_queue 优先队列(堆)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STL专项:priority_queue 优先队列(堆)

priority_queue

优先队列,也叫"",仅维护最大/最小元素,可以在较小的时间复杂度内获取某个元素集合的最大或最小值

优先队列常用于贪心、优化dp、构造、dijkstra、prim等问题或算法中,应用非常广泛

声明

//默认为大根堆

priority_queue<int> pq;

//改为小根堆

priority_queue<int,vector<int>,greater<int>> pq;

//比较复杂的结构,比如说pair和结构体等时使用自定义函数

//自定义比较函数常用方法

//方法一:全局函数,传入函数指针用decltype转换

bool cmp(const int &u,const int &v){

return u<u;

}

priority_queue<int, vector<int>,decltype(&cmp)> pq(cmp);

//方法二:匿名函数用cmp变量存储,传入变量

auto cmp = [](const int &u, const int &v){

return u<v;//大根堆

};

priority_queue<int,vector<int>,decltype(cmp)> pq(cmp);

//方法三:struct重载()运算符

struct cmp{

bool operator()(const int &u, const int &v){

return u<v;//大根堆

}

}

priority_queue<int,vector<int>,cmp> pq;

常规操作

//取出堆顶元素,时间复杂度为O(1)

cout << pq.top() << '\n';

//入堆,O(logn),n为堆内元素个数

pq.push(x);

//出堆,O(logn),n为堆内元素个数

pq.pop(); //注意保证pq非空

//获取堆内元素个数,即堆的大小

cout << pq.size() << '\n';

优先队列为树形结构,不支持遍历(除非逐个出堆)

小e吃松果

小e吃松果 | 星码StarryCoding 算法竞赛新手村

代码

#include<bits/stdc++.h> using namespace std; using ll = long long; int main(){ int n;cin>>n; priority_queue<ll,vector<ll>,greater<ll>> pq; for(int i=1;i<=n;i++){ ll x;cin>>x; pq.push(x); } ll ans=0; while(pq.size()>1){ ll x=pq.top();pq.pop(); ll y=pq.top();pq.pop(); ans+=x+y; pq.push(x+y); } cout << ans <<endl; return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/3 2:04:45

YOLO在光污染监测的应用:夜间灯光强度视觉评估

YOLO在光污染监测的应用&#xff1a;夜间灯光强度视觉评估 城市夜晚的灯火辉煌&#xff0c;曾是现代化的象征。然而&#xff0c;当霓虹永不熄灭、路灯彻夜通明&#xff0c;这份“光明”正悄然演变为一种隐形的环境负担——光污染。它不仅遮蔽了星空&#xff0c;扰乱动植物节律&…

作者头像 李华
网站建设 2026/6/30 23:30:24

YOLO模型灰度发布后的性能回归测试

YOLO模型灰度发布后的性能回归测试 在智能制造工厂的视觉质检线上&#xff0c;一台搭载YOLOv8的边缘设备正以每秒60帧的速度检测电路板上的元器件缺陷。某天&#xff0c;运维团队收到告警&#xff1a;系统整体延迟上升了15%&#xff0c;部分工位出现漏检。排查发现&#xff0c;…

作者头像 李华
网站建设 2026/7/1 12:15:15

构建LLM支持的AI Agent创新思维系统

构建LLM支持的AI Agent创新思维系统 关键词:LLM(大语言模型)、AI Agent、创新思维系统、智能交互、认知推理 摘要:本文聚焦于构建基于大语言模型(LLM)支持的AI Agent创新思维系统。详细介绍了相关背景知识,包括目的、预期读者、文档结构等。深入剖析了核心概念,阐述了L…

作者头像 李华
网站建设 2026/7/11 14:21:17

YOLO在空气质量监测的应用:扬尘颗粒物视觉识别

YOLO在空气质量监测的应用&#xff1a;扬尘颗粒物视觉识别 城市工地的塔吊下&#xff0c;尘土随风翻卷&#xff0c;一辆渣土车正缓缓驶出围挡——如果没有盖篷布&#xff0c;这可能就是一次典型的扬尘污染事件。过去&#xff0c;这类行为往往要等到空气检测站读数异常、市民投诉…

作者头像 李华
网站建设 2026/6/30 21:11:46

YOLO在智能楼宇的应用:电梯内人数统计与超载预警

YOLO在智能楼宇的应用&#xff1a;电梯内人数统计与超载预警 在高层建筑林立的今天&#xff0c;电梯早已不是简单的垂直运输工具——它成了衡量楼宇智能化水平的一扇窗口。然而&#xff0c;大多数电梯仍停留在“称重报警”的初级安全阶段。你是否经历过这样的尴尬&#xff1a;几…

作者头像 李华