博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态数组第k小,Poj(1442)
阅读量:6547 次
发布时间:2019-06-24

本文共 792 字,大约阅读时间需要 2 分钟。

题目链接:

本来想复制一下,然后直接sort,结果T了。

在网上看了一下,有用两个队列做的,想了半天,没看懂什么意思。后来模拟一边,总算是懂了。

这里,将要输出的第k小的数存在最小堆中,输出,压入到最大堆中(最大堆是用来存第k小之前的数,更小),循环操作中,要是发现,压人到最小堆中的数,要是比最大堆中的头结点要小,当然要交换啦。

#include 
#include
#include
using namespace std;const int maxn = 30005;int a[maxn];int main(){ int m,n; priority_queue
,less
>Q; ///最大堆 priority_queue
,greater
> QQ; ///最小堆 scanf("%d%d",&m,&n); for(int i=1;i<=m;i++) scanf("%d",&a[i]); int be = 1; for(int i=1;i<=n;i++) { int b; scanf("%d",&b); for(int j=be;j<=b;j++) { QQ.push(a[j]); if(!Q.empty()&&Q.top()>QQ.top()) { int tmp; tmp = Q.top(); Q.pop(); Q.push(QQ.top()); QQ.pop(); QQ.push(tmp); } } be=b+1; printf("%d\n",QQ.top()); Q.push(QQ.top()); QQ.pop(); } return 0;}

 

转载于:https://www.cnblogs.com/TreeDream/p/5615266.html

你可能感兴趣的文章
好久不见
查看>>
小tips:JS中的children和childNodes
查看>>
二叉树的遍历
查看>>
Oracle的FIXED_DATE参数
查看>>
NDK配置
查看>>
(转)@ContextConfiguration注解说明
查看>>
[置顶] ※数据结构※→☆线性表结构(queue)☆============队列 顺序存储结构(queue sequence)(八)...
查看>>
Linux 系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用
查看>>
JQuery UI Widget Factory官方Demo
查看>>
Atlas揭秘 —— 绑定(Binding)
查看>>
install xcode_3.2.5_and_iOS_sdk_4.2 _final with mac lion10.7.3
查看>>
JavaScript权威指南(第6版)
查看>>
sql 自定義百分比轉換小數函數
查看>>
一起谈.NET技术,C# 委托,事件和Lambda表达式
查看>>
远离云计算风险三步走
查看>>
Silverlight 游戏开发小技巧:技能冷却效果2(Cool“.NET研究”down)2
查看>>
An Introduction to Asynchronous Programming and Twisted (2)
查看>>
vue 组件编码规范
查看>>
IEC61850与MMS的服务映射
查看>>
Java 泛型: 什么是PECS(Producer Extends, Consumer Super)
查看>>