题目描述

给出一个长度为NN的非负整数序列A_iAi​,对于所有1 ≤ k ≤ (N + 1) / 21≤k≤(N+1)/2,输出A_1, A_3, …, A_{2k - 1}A1​,A3​,…,A2k−1​的中位数。即前1,3,5,…1,3,5,…个数的中位数。

输入格式

第11行为一个正整数NN,表示了序列长度。

第22行包含NN个非负整数A_i (A_i ≤ 10^9)Ai​(Ai​≤109)。

输出格式

共(N + 1) / 2(N+1)/2行,第ii行为A_1, A_3, …, A_{2k - 1}A1​,A3​,…,A2k−1​的中位数。

本题要用到优先队列定义堆:

such as:

    priority_queue<int,vetor<int>,greater<int> >p1;——小根堆(扔进去的数据自动排为由小到大)

    priority_queue<int,vector<int>,less<int> >p2; ——大根堆(扔进去的数据自动排为由大到小)

堆顶堆:

   

 代码(愿以后的我能看懂):

 #include<bits/stdc++.h>
using namespace std;
priority_queue<int,vector<int>,less<int> >p2;
priority_queue<int,vector<int>,greater<int> >p1;
int n,x;
int mid;
int main()
{
cin>>n;
cin>>x;
mid=x;
cout<<mid<<endl;//取中位数
for(int i=;i<=n;i++)
{
cin>>x;
if(x<mid)
p2.push(x);
if(x>mid)
p1.push(x);
if((i-)%==)
{
if(p1.size() >p2.size() )
{
p2.push(mid);
mid=p1.top() ;
p1.pop() ;
}
if(p1.size() <p2.size() )
{
p1.push(mid) ;
mid=p2.top() ;
p2.pop() ;
}
cout<<mid<<endl;
}
}
return ;
}

P1168 中位数 堆的更多相关文章

  1. [luogu]P1168 中位数[堆]

    [luogu]P1168 中位数 题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数.即前1 ...

  2. P1168 中位数[堆 优先队列]

    题目描述 给出一个长度为NNN的非负整数序列AiA_iAi​,对于所有1≤k≤(N+1)/21 ≤ k ≤ (N + 1) / 21≤k≤(N+1)/2,输出A1,A3,…,A2k−1A_1, A_3 ...

  3. 洛谷——P1168 中位数

    P1168 中位数 题目描述 给出一个长度为NN的非负整数序列$A_i$​,对于所有1 ≤ k ≤ (N + 1),输出$A_1, A_3, …, A_{2k - 1}A1​,A3​,…,A2k−1​ ...

  4. P1168 中位数

    P1168 中位数树状数组+二分答案.树状数组就是起一个高效查询比二分出来的数小的有几个. #include<iostream> #include<cstdio> #inclu ...

  5. 【洛谷】【堆】P1168 中位数

    [题目描述:] 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[3], …, A[2k - 1]的中位数.即前1,3,5,……个数的中位数. ...

  6. P1168 中位数(对顶堆)

    题意:维护一个序列,两种操作 1.插入一个数 2.输出中位数(若长度为偶数,输出中间两个较小的那个) 对顶堆 维护一个小根堆,一个大根堆,大根堆存1--mid,小根堆存mid+1---n 这样堆顶必有 ...

  7. 堆--P1168 中位数

    题目描述 给出一个长度为N的非负整数序列Ai​,对于所有1≤k≤(N+1)/2,输出A1,A3,…,A2k−1的中位数.即前1,3,5,…个数的中位数. 输入格式 第1行为一个正整数N,表示了序列长度 ...

  8. 洛谷 P1168 中位数(优先队列)

    题目链接 https://www.luogu.org/problemnew/show/P1168 解题思路 这个题就是求中位数,但是暴力会tle,所以我们用一种O(nlogn)的算法来实现. 这里用到 ...

  9. LuoGu P1168 中位数

    题目描述 给出一个长度为 $ N $ 的非负整数序列 $ A_i $ ,对于所有 $ 1 ≤ k ≤ (N + 1) / 2 $ ,输出 $ A_1, A_3, -, A_{2k - 1} $ 的中位 ...

随机推荐

  1. 【NOIP2012模拟10.31】掷骰子

    题目 太郎和一只免子正在玩一个掷骰子游戏.有一个有N个格子的长条棋盘,太郎和兔子轮流掷一个有M面的骰子,骰子M面分别是1到M的数字.且掷到任意一面的概率是相同的.掷到几.就往前走几步.当谁走到第N格时 ...

  2. tensorflow conv2d

    https://www.cnblogs.com/qggg/p/6832342.html

  3. 对云信SDK的研究

    1.我首先看了网易的云的各个产品 2.进行了分析发现产品还是很多的 3.主要对web的SDK进行了查看 4.主要有即时通信和聊天室 5.在githup上有网易托管的代码,我用git拉下来,并进行了查看 ...

  4. python深度学习:矩阵转置(transpose)

    转置:即行列转换. import numpy as np import matplotlib.pyplot as plt C=np.array([[1,2,3],[4,5,6]]) # Display ...

  5. 删除操作——str.subString(0,str.length()-1)

    subString是String的一个方法,格式为: public String substring(int beginIndex, int endIndex)  返回一个新字符串,它是此字符串的一个 ...

  6. 将Emacs Org mode用于GTD任务管理

    在上一篇日志中,我简要介绍了如何围绕Emacs Org mode构建个人任务管理系统的基本思路与方法.因为Org mode体系庞大.功能繁杂,本文仅以提纲契领的方式介绍不同环节在Org mode中的操 ...

  7. SQL server 安装教程

      双击sql server 2008的.exe安装文件,进入[SQL Server 安装中心]. 点击界面左侧的[安装],然后点击右侧的[全新SQL Server 独立安装或向现有安装添加功能],进 ...

  8. maven的配置及使用

    Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具. Apache官网下载maven 解压缩,配置环境变量: path路径:E:\apache-ma ...

  9. douyu danmu test c#

    using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Text.Regul ...

  10. hibernate更新

    1.使用对象更新 public void updateImagePath(Weibo weibo){ Session session = HibernateUtil.currentSession(); ...