本质为sort,这里我们用优先队列(堆)解决。

什么是堆?

堆是一个完全二叉树,而且是每层都有规律的二叉树

规律大概是:

小根堆:最上层数的大小最小,往下每层结点都比父亲结点大,比两个儿子结点小

大根堆:最上层数的大小最大,往下每层结点都比父亲结点小,比两个儿子结点大

这里sort为从小到大排序,那么我们用小根堆就OK足矣

(能看这篇题解的人都是想学习的好孩子(不想学的直接一遍sort过了),我为你点赞!QWQ)

涉及英文单词:priority _ queue:     优先 _ 队列 QWQ

代码如下:

#include<cstdio>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;//开一个名字为q的优先队列
//vector我不知道是干啥的后面肯定会学。。反正必须要加背过就行了
//greater为小根堆,不加的话为大根堆
int n;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++){
int x;
scanf("%d",&x);
q.push(x);//push为入队操作,然后系统自动为你建立小根堆并维护
}
while(!q.empty()){//非空
printf("%d ",q.top());//输出堆顶元素
q.pop();//删除(弹出)堆顶,然后维护
}
return ;
}

完结✿ヽ(°▽°)ノ✿

推荐一个呗

P1177 【模板】快速排序 题解的更多相关文章

  1. [模板][快速排序&归并排序]

    不得不说,手写的快排真的好菜.(即使开了随机数...) 快速排序 #include<iostream> #include<cstdio> #include<cstring ...

  2. HDU1251 统计难题 (字典树模板)题解

    思路:模板题,贴个模板 代码: #include<cstdio> #include<cstring> #include<cstdlib> #include<q ...

  3. HDU 6611 K Subsequence(Dijkstra优化费用流 模板)题解

    题意: 有\(n\)个数\(a_1\cdots a_n\),现要你给出\(k\)个不相交的非降子序列,使得和最大. 思路: 费用流建图,每个点拆点,费用为\(-a[i]\),然后和源点连边,和后面非降 ...

  4. lucas定理(模板题题解)

    题目很简单,很暴力,就是组合数,没有其他的. 但是直接暴力会炸wow 我们可以利用Lucas定理来分解字问题. Lucas定理:C(n,m)(mod p)=C(n%p,m%p)*C(n/p,m/p)( ...

  5. HDU 3065 病毒侵袭持续中(AC自动机 模板)题解

    题意:给出主串中每个模式串的个数 思路:毒瘤出题人多组数据没说给的是多组数据. 板子: struct Aho{ struct state{ int next[130]; int fail, cnt; ...

  6. luoguP5105 不强制在线的动态快速排序 [官方?]题解 线段树 / set

    不强制在线的动态快速排序 题解 算法一 按照题意模拟 维护一个数组,每次直接往数组后面依次添加\([l, r]\) 每次查询时,暴力地\(sort\)查询即可 复杂度\(O(10^9 * q)\),期 ...

  7. 题解 洛谷 P4047 【[JSOI2010]部落划分】

    我觉得几乎就是一道最小生成树模板啊... 题解里许多大佬都说选第n-k+1条边,可我觉得要这么讲比较容易理解 (虚边为能选的边,实边为最小生成树) 令n=5,k=2,(1,3)<(1,2)< ...

  8. P1919 【模板】A*B Problem升级版 /// FFT模板

    题目大意: 给定l,输入两个位数为l的数A B 输出两者的乘积 FFT讲解 这个讲解蛮好的 就是讲解里面贴的模板是错误的 struct cpx { double x,y; cpx(double _x= ...

  9. AcWing 785.快速排序

    AcWing 785.快速排序题解 题目描述 给定你一个长度为n的整数数列. 请你使用快速排序对这个数列按照从小到大进行排序. 并将排好序的数列按顺序输出. 输入格式 输入共两行,第一行包含整数 n. ...

随机推荐

  1. Python初识+条件语句+循环语句

    一.写照: 1.第一个程序 hello world print('hello world') 后缀名可以是任意(只是现在)(lx.py lx.ps) 导入模块时不是.py 就会出错 2.解释器路径 # ...

  2. ios的跨站脚本限制

    概述 项目中碰到一个问题,就是在ios机上,用iframe内嵌的网页有时需要登录,有时候又不需要登录.查找了半天,终于发现是ios的跨站脚本限制导致的.这里就来介绍下跨站脚本限制,供以后开发时参考,相 ...

  3. 简单读!zookeeper单机模式的启动逻辑

    zk用处如此之多,以至于每个地方都要你理解zk原理! 请按如下操作姿势打开: 1. 打开zk的git仓库地址:https://github.com/apache/zookeeper , 确认过眼神,它 ...

  4. QPainterPath 不规则提示框(二)

    前一篇讲过不规则提示框,但是提示框的方向是固定的,不能达到随意变换方向的效果,本接讲述可以动态变换方向的提示框 先看效果图 图1 图2 图3 图4 如上图1所示,上一篇文章的代码可以达到类似效果 ​本 ...

  5. Litepal【开源数据库ORM框架】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 好用的数据库框架. 效果图 代码分析 本篇主要是整理Litepal的引入和增删改查的简单操作,具体使用请阅读参考资料. 使用步骤 一 ...

  6. springboot~添加新模块的方法

    在springboot项目框架里,把一个项目两大模块,主项目main和测试项目test,而我们的测试项目根据功能又可以再分,比如可以有单元测试,集成测试,业务测试等等. 对于一个初学者来说,建立模块的 ...

  7. 痞子衡嵌入式:飞思卡尔Kinetis系列MCU开发那些事 - 索引

    大家好,我是痞子衡,是正经搞技术的痞子.本系列痞子衡给大家介绍的是飞思卡尔Kinetis系列微控制器相关知识. 飞思卡尔半导体(现恩智浦半导体)于2010年开始推出的Kinetis系列昭示着ARM C ...

  8. .net core 使用MD5加密解密字符串

    /// <summary> /// 加密 /// </summary> /// <param name="Text">要加密的文本</pa ...

  9. OO第二单元总结

    这一单元作业是围绕电梯调度进行展开,并引进了多线程的概念.与第一次作业比较类似,作业难度也是逐渐推进,从最开始的单部电梯先来先服务(傻瓜式调度),到之后的单部电梯可稍带调度,到最后的多部电梯分楼层调度 ...

  10. 学习笔记—JVM

    JVM结构 JVM总体结构图 类加载子系统与方法区: 类加载子系统负责从文件系统和网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间. 除了类信息外,方法区中还可能会存放运行时常量池 ...