参考http://blog.csdn.net/sdfzyhx/article/details/52735387

凡是关于排序,可以考虑优先队列。

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
priority_queue<int,vector<int>,greater<int> > bh;
priority_queue<int,vector<int>,less<int> > sh;
int main()
{int i,j,k,m,n,p,q,x,y,z,T,K;scanf("%d",&T);while (T--){scanf("%d%d",&K,&n);printf("%d %d\n",K,n/2+1);while (!bh.empty()) bh.pop();while (!sh.empty()) sh.pop();for (i=1;i<=n;i++){scanf("%d",&x);if (sh.empty()||sh.top()>=x) sh.push(x);//插入元素小的,就放入sh,其他放入bh 其实这里> 或者大于等于都可以,反正在后面要调整堆的元素个数else bh.push(x);if (sh.size()>(i+1)/2)//调整堆的大小使得当i为奇数时候,sh的大小为i的一半多一个,则这一个就是中位数。{x=sh.top();sh.pop();bh.push(x);}if (sh.size()<(i+1)/2){x=bh.top();bh.pop();sh.push(x);}if (i&1){printf("%d",sh.top());if (i==n||(i+1)%20==0)printf("\n");else printf(" ");}}}
}

http://blog.csdn.net/sdfzyhx/article/details/52735387

关于排序的考虑优先队列,比如找中位数

转载于:https://www.cnblogs.com/LandingGuy/p/9280292.html

poj3784 Running Median查找中位数相关推荐

  1. HDU 3282 Running Median 动态中位数,可惜数据范围太小

    Running Median Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...

  2. 【POJ3784】Running Median(中位数,对顶堆)

    description 输入M个数,当已输入的个数为奇数个时输出此时的中位数. 一共有M/2+1个中位数要输出,每一行10个. solution 维护两个优先队列. 大根堆q1维护比当前中位数小的元素 ...

  3. POJ 3784.Running Median

    2015-07-16 问题简述: 动态求取中位数的问题,输入一串数字,每输入第奇数个数时求取这些数的中位数. 原题链接:http://poj.org/problem?id=3784 解题思路: 求取中 ...

  4. c++median search中位数搜索的实现算法(附完整源码)

    C++median search中位数搜索的实现算法 C++median search中位数搜索的实现算法完整源码(定义,实现,main函数测试) C++median search中位数搜索的实现算法 ...

  5. 专题突破二之优先队列、st表——,Running Median,Sequence,Buy Low Sell High,数据备份,超级钢琴,ZQC的手办

    文章目录 Running Median Sequence Buy Low Sell High [APIO/CTSC 2007] 数据备份 [NOI2010] 超级钢琴 「LibreOJ β Round ...

  6. POJ - 3784 Running Median(动态维护中位数)

    题目链接:点击查看 题目大意:给出n个数,依次读入一个整数序列,每当已经读入的整数个数为奇数时,输出已读入的整数构成的序列的中位数 题目分析:动态维护中位数,我们可以直接用两个二叉堆来维护,一个是小顶 ...

  7. 【每日一题】4月9日题目精讲 Running Median

    文章目录 题目: 题意: 题解一: 题解二: 题目: –>链接<- 时间限制:C/C++ 5秒,其他语言10秒 空间限制:C/C++ 65536K,其他语言131072K 64bit IO ...

  8. 查找中位数(分治策略)

    问题描述 设计与实现查找数组的中项问题的算法: 解决思路 要找出一个数组的中位数,最简单的方法当然是将数组排序,但快速排序的时间复杂度也需要O(nlogn),我们可以寻找更快的算法来解决.首先对于一个 ...

  9. POJ3784-Running Median(运行中位数)【链表】

    正题 题目链接:http://poj.org/problem?id=3784 题目大意 给出n个数,每两个数输出一次到目前为止输入了的所有数的中位数. 解题思路 我们使用离线算法. 既然这是一个一个输 ...

最新文章

  1. edit怎么读英语_名师说学习:英语学习有方法
  2. Markdown2.py And Pygments Test
  3. 文件安全传输服务器,安全传输:从文件加载服务器证书
  4. 深入理解HTML表格
  5. Redis灵魂14问?真香
  6. 来了解下计算机视觉的八大应用
  7. 二 jQuery 语法
  8. CSS height高度 和 width宽度
  9. Elasticsearch 7.7.0 基本操作-基于 CMD 命令行
  10. Windows Phone开发(6):处理屏幕方向的改变 转:http://blog.csdn.net/tcjiaan/article/details/7273107...
  11. Spring4.3.10 集成 Apache CXF 3.3 详细说明
  12. 网站通行证的交互设计分析
  13. 5个步骤实现流程管理
  14. The Balance POJ - 2142
  15. 2022年NOC软件创意编程(学而思赛道)选拔赛小学高年级组python,包含答案
  16. 多项式拟合缺点_多项式拟合
  17. 【hdu 1533】Going Home
  18. 网页设计(HTML+CSS+Div)学习笔记
  19. win10 条件下在anaconda中安装face_recognition(超简单,亲测有效)
  20. 基于Matlab模拟用于海况海洋学研究的 X 波段雷达系统(附源码)

热门文章

  1. oj contest ranklist时间怎么算的_几次买入基金怎么算持有天数,加仓算在原来持有时间吗...
  2. 改革以来计算机应用发展总结,计算机应用专业课程改革总结.doc
  3. linux查看cpu监控日志,Linux:日志,cpu,memory,mount,load等系统信息查看
  4. 计算机教 学计划书,计算机教师工作计划个人范例
  5. python【数据结构与算法】并查集引入
  6. 【系统分析与设计】UML类图绘制方法(真の能看懂~!)
  7. python【Matlibplot绘图库】Animation动画(真の能看懂~!)
  8. synchronized不能锁静态变量_多线程编程不可错过——彻底理解synchronized
  9. NodeJS 流水式创建EOS主网账户, 羊毛党必备, 新手一键创建账户
  10. 浅析网络营销外包中如何实现网络营销外包中的图片推广?