news 2026/6/14 12:00:03

堆 标准模板题及基础

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
堆 标准模板题及基础

STL定义:

最大堆(默认):
priority_queue<int> heap;
最小堆:
priority_queue<int,vector<int>,greater<int> > heap;

注意!!!虽然是小根堆,但是这里是GREATER!!!

自定义比较器:

struct compare{ bool operater(int a,int b){ return a>b; } }; priority_queue<int,vector<int>,compare> pq;

巨坑!!!

最后一行的堆是小根堆,

return a<b;

与排序的顺序相反!

1.模板题:

P3378 【模板】堆

提交答案加入题单复制题目

提交200.08k

通过86.76k

时间限制1.00s

内存限制512.00MB

题目编号P3378

题目描述

给定一个数列,初始为空,请支持下面三种操作:

  1. 给定一个整数 x,请将 x 加入到数列中。
  2. 输出数列中最小的数。
  3. 删除数列中最小的数(如果有多个数最小,只删除 1 个)。

输入格式

第一行是一个整数,表示操作的次数 n。
接下来 n 行,每行表示一次操作。每行首先有一个整数 op 表示操作类型。

  • 若 op=1,则后面有一个整数 x,表示要将 x 加入数列。
  • 若 op=2,则表示要求输出数列中的最小数。
  • 若 op=3,则表示删除数列中的最小数。如果有多个数最小,只删除 1 个。

输出格式

对于每个操作 2,输出一行一个整数表示答案。

输入输出样例

输入 #1复制

5 1 2 1 5 2 3 2

输出 #1复制

2 5

说明/提示

【数据规模与约定】

  • 对于 30% 的数据,保证 n≤15。
  • 对于 70% 的数据,保证 n≤104。
  • 对于 100% 的数据,保证 1≤n≤106,1≤x<231,op∈{1,2,3}。
    #include <bits/stdc++.h> using namespace std; int heap[1000005]; int pos=1; void push(int x) { heap[pos]=x; int kid=pos; int dad=kid/2; while (dad>=1 and heap[kid]<heap[dad]) { swap(heap[kid],heap[dad]); kid=dad; dad=kid/2; } pos++; } void down(int n) { int self=n; while(true) { int left=2*self; int right=2*self+1; int smallest=self; if(left<pos and heap[left]<heap[smallest]) { smallest=left; } if(right<pos and heap[right]<heap[smallest]) { smallest=right; } if(smallest!=self) { swap(heap[self],heap[smallest]); self=smallest; }else{ break; } } } void del() { if (pos<=1) return; swap(heap[1],heap[pos-1]); pos--; down(1); } int main() { int n; cin>>n; while(n--) { int op; cin>>op; switch (op) { case 1: { int x; cin>>x; push(x); break; } case 2:{ if(pos>1) { cout<<heap[1]<<endl; } break; } case 3:{ del(); break; } } } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 5:21:21

大规模语言模型的抽象思维与创新能力培养

大规模语言模型的抽象思维与创新能力培养关键词&#xff1a;大规模语言模型、抽象思维、创新能力、培养方法、应用场景摘要&#xff1a;本文围绕大规模语言模型的抽象思维与创新能力培养展开深入探讨。首先介绍了研究的背景、目的、预期读者和文档结构等内容。接着阐述了核心概…

作者头像 李华
网站建设 2026/6/13 22:39:14

【深度学习新浪潮】对称性:从数学本质到大模型训练与推理的效率革命

在大模型研究的浪潮中,我们往往聚焦于模型架构的创新(如Transformer的迭代)、训练数据的规模扩张或算力的堆叠,却容易忽略一个贯穿数学、物理与人工智能的核心概念——对称性。从几何空间的图形变换到代数方程的不变性,从自然规律的守恒律到机器学习模型的泛化能力,对称性…

作者头像 李华
网站建设 2026/6/13 0:50:00

老牌软件,输入序列号可激活商业版!

引言 前两天用无损放大的软件把gif图片无损放大以后打开&#xff0c;发现用系统自带的图片查看时报错&#xff0c;但用其他的软件能打开。 这系统自带的图片查看器功能实在是太弱了&#xff0c;我强烈建议使用其他的图片查看器打开图片&#xff0c;比如今天的这款软件。 02 …

作者头像 李华
网站建设 2026/6/13 2:58:47

性价比高的循环水处理专业的源头厂家

性价比高的循环水处理专业的源头厂家在工业生产和日常生活中&#xff0c;循环水系统的应用极为广泛&#xff0c;而循环水处理对于系统的稳定运行和使用寿命至关重要。寻找一家性价比高的循环水处理专业源头厂家&#xff0c;成为众多企业和用户的迫切需求。源头厂家的优势源头厂…

作者头像 李华
网站建设 2026/6/14 3:29:11

AI写论文哪个软件好?9款AI论文写作软件实测,查重率低至6%!

对写论文的人来说&#xff0c;论文选题难、论文文献杂、论文查重高、论文排版烦&#xff0c;每一步都耗时间&#xff1b;而市面上AI论文写作工具太多&#xff0c;有的宣称一键AI生成论文却没质量&#xff0c;有的只懂降重却乱改论文逻辑&#xff0c;想靠AI写论文省心&#xff0…

作者头像 李华
网站建设 2026/6/12 21:34:22

亲测十大灵活用工平台复盘

十大灵活用工平台技术复盘&#xff1a;从行业痛点看头部解决方案的演进行业痛点分析当前&#xff0c;灵活用工平台领域正面临着一系列深刻的技术与管理挑战。首要挑战在于系统并发与稳定性&#xff0c;尤其在大型促销或结算周期&#xff0c;瞬时高并发访问常导致传统平台响应延…

作者头像 李华