P1177 【模板】快速排序 题解
本质为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 【模板】快速排序 题解的更多相关文章
- [模板][快速排序&归并排序]
不得不说,手写的快排真的好菜.(即使开了随机数...) 快速排序 #include<iostream> #include<cstdio> #include<cstring ...
- HDU1251 统计难题 (字典树模板)题解
思路:模板题,贴个模板 代码: #include<cstdio> #include<cstring> #include<cstdlib> #include<q ...
- HDU 6611 K Subsequence(Dijkstra优化费用流 模板)题解
题意: 有\(n\)个数\(a_1\cdots a_n\),现要你给出\(k\)个不相交的非降子序列,使得和最大. 思路: 费用流建图,每个点拆点,费用为\(-a[i]\),然后和源点连边,和后面非降 ...
- lucas定理(模板题题解)
题目很简单,很暴力,就是组合数,没有其他的. 但是直接暴力会炸wow 我们可以利用Lucas定理来分解字问题. Lucas定理:C(n,m)(mod p)=C(n%p,m%p)*C(n/p,m/p)( ...
- HDU 3065 病毒侵袭持续中(AC自动机 模板)题解
题意:给出主串中每个模式串的个数 思路:毒瘤出题人多组数据没说给的是多组数据. 板子: struct Aho{ struct state{ int next[130]; int fail, cnt; ...
- luoguP5105 不强制在线的动态快速排序 [官方?]题解 线段树 / set
不强制在线的动态快速排序 题解 算法一 按照题意模拟 维护一个数组,每次直接往数组后面依次添加\([l, r]\) 每次查询时,暴力地\(sort\)查询即可 复杂度\(O(10^9 * q)\),期 ...
- 题解 洛谷 P4047 【[JSOI2010]部落划分】
我觉得几乎就是一道最小生成树模板啊... 题解里许多大佬都说选第n-k+1条边,可我觉得要这么讲比较容易理解 (虚边为能选的边,实边为最小生成树) 令n=5,k=2,(1,3)<(1,2)< ...
- P1919 【模板】A*B Problem升级版 /// FFT模板
题目大意: 给定l,输入两个位数为l的数A B 输出两者的乘积 FFT讲解 这个讲解蛮好的 就是讲解里面贴的模板是错误的 struct cpx { double x,y; cpx(double _x= ...
- AcWing 785.快速排序
AcWing 785.快速排序题解 题目描述 给定你一个长度为n的整数数列. 请你使用快速排序对这个数列按照从小到大进行排序. 并将排好序的数列按顺序输出. 输入格式 输入共两行,第一行包含整数 n. ...
随机推荐
- 教程二 网页和lua交互修改openwrt
硬件 http://zhan.renren.com/h5/entry/3602888498044209332 GL-iNet 1 首先安装 webserver之lighttpd ,openwrt自带 ...
- Cocos Creator—如何给资源打MD5版本号
Cocos Creator 是Cocos最新一代的游戏开发者工具,基于 Cocos2d-x,组件化,脚本化,数据驱动,跨平台发布.Cocos Creator的开发思路已经逐步跟Unity 3D靠拢,写 ...
- SCSS & SASS Color 颜色函数用法
最近做一个没有设计师参与的项目,发现 scss 内置的颜色函数还挺好用.记录分享下 rgba() 能省掉手工转换 hex 到 rgb 格式的工作,如以下 SCSS 代码 $linkColor: #20 ...
- 博客系统typecho的安装与使用
之前用过wordpress和emlog的博客系统,感觉上wordpress功能强大,插件多,而且也不局限博客网站,就是资源占用比较高,emlog比较简单,资源占用少,就是界面不太喜欢,功能相对也少了些 ...
- ping命令的七种用法,看完瞬间成大神
一.ping基本使用详解 在网络中ping是一个十分强大的TCP/IP工具.它的作用主要为: 1.用来检测网络的连通情况和分析网络速度 2.根据域名得到服务器IP 3.根据ping返回的TTL值来判断 ...
- C#类型(一)
1.System.Object C#的所有类型都是派生自System.Object 也就是说下面的两个类型定义完全一致 // 隐式派生自Object public class Person{ } { ...
- [开源]基于Log4Net简单实现KafkaAppender
背景 基于之前基于Log4Net本地日志服务简单实现 实现本地日志服务,但是随着项目开发演进,本地日志服务满足不了需求,譬如在预发布环境或者生产环境,不可能让开发人员登录查看本地日志文件分析. Kaf ...
- 图像检索(4):IF-IDF,RootSift,VLAD
TF-IDF RootSift VLAD TF-IDF TF-IDF是一种用于信息检索的常用加权技术,在文本检索中,用以评估词语对于一个文件数据库中的其中一份文件的重要程度.词语的重要性随着它在文件中 ...
- 浅谈SpringMVC执行过程
通过深入分析Spring源码,我们知道Spring框架包括大致六大模块, 如Web模块,数据库访问技术模块,面向切面模块,基础设施模块,核心容器模块和模块, 其中,在Spring框架的Web模块中,又 ...
- 从零开始学安全(四十四)●TCP三次握手四次挥手
wireshark:Beyond Compare是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与 ...