牛客周赛 Round 62:小红的中位数查询easy:巧用stl模拟

embedded/2024/10/21 5:47:49/

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
 

题目描述

easy 版本中,所有的 r−l+1r - l + 1r−l+1 都相等,而 hard 版本中没有此限制。通过 easy 版本可以获得 250 分,通过 hard 版本可以获得 50 分。

小红拿到了一个数组,她有若干次询问,每次询问一个区间,她希望你输出该区间的中位数是多少。


保证区间的元素数量为奇数。

在本难度中,保证所有区间的长度都相等。

区间中位数的定义:将区间所有元素从小到大排序后、最中间的那个数。例如[2,1,4]的中位数是2,[2,1,4,3,3]的中位数是3。

输入描述:

第一行输入两个正整数n,qn,qn,q,代表数组大小、询问次数。
第二行输入nnn个正整数aia_iai​,代表小红拿到的数组。
接下来的qqq行,每行输入两个正整数li,ril_i,r_ili​,ri​,代表一次询问。
1≤n,q≤1051\leq n,q \leq 10^51≤n,q≤105
1≤ai≤1091\leq a_i \leq 10^91≤ai​≤109
1≤li≤ri≤n1\leq l_i \leq r_i \leq n1≤li​≤ri​≤n
保证所有的ri−li+1r_i-l_i+1ri​−li​+1为奇数,且都相等。

输出描述:

输出qqq行,每行输出一个正整数,代表询问的结果。

示例1

输入

复制5 2 2 1 4 3 3 1 3 2 4

5 2
2 1 4 3 3
1 3
2 4

输出

复制2 3

2
3

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,q,a[N],ans[N];
vector<int> v;
pair<int,int> p[N];
int main(){cin.tie(0);ios::sync_with_stdio(0);cin>>n>>q;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=q;i++) cin>>p[i].first>>p[i].second;int len=p[1].second-p[1].first+1;for(int i=1;i<=n;i++){v.insert(lower_bound(v.begin(),v.end(),a[i]),a[i]);//保证了长度为len的区间是有序的,从而取中间值求平均数if(v.size()==len){int id=len/2;ans[i]=v[id];v.erase(lower_bound(v.begin(),v.end(),a[i-len+1]));}}for(int i=1;i<=q;i++){cout<<ans[p[i].second]<<endl;}
}


http://www.ppmy.cn/embedded/127799.html

相关文章

HBO 纪录片揭露中本聪是谁

10 月 8 日播出的 HBO 纪录片《Money Electric: The Bitcoin Mystery》声称中本聪就是前加拿大比特币开发者 Peter Todd。 但纪录片上映前 Todd 在发送给 CoinDesk 的一封电子邮件中否认了这一点。 在纪录片中&#xff0c;导演 Cullen Hoback 根据他搜索的新旧线索得出了这一…

如何禁用Spring Boot启动时显示的横幅(banner)

引言 Spring Boot 在启动时会显示一个横幅&#xff08;banner&#xff09;&#xff0c;这个横幅通常包含 Spring Boot 的 logo 和一些启动信息。如果您不希望在控制台或日志文件里显示这个横幅&#xff0c;可以通过以下几种方式进行配置&#xff1a; 通过配置文件禁用横幅 通…

2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数

2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数 2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数 文章目录 2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数KfLowerIrql 函数 KfLowerIrql 函数 /*******************************************************…

软媒市场新蓝海:软文媒体自助发布与自助发稿的崛起

在信息时代的浪潮中,软媒市场以其独特的魅力和无限的潜力,成为了企业营销的新宠。随着互联网的飞速发展,软文媒体自助发布平台应运而生,为企业提供了更加高效、便捷的营销方式。而自助发稿功能的加入,更是让软媒市场的蓝海变得更加广阔。 软媒市场的独特价值 软媒市场之所以能…

解决 CentOS 安装 Oracle 11g 时的多架构依赖冲突20241014

解决 CentOS 安装 Oracle 11g 时的多架构依赖冲突 在 CentOS 中安装 64 位的 Oracle 11g 时&#xff0c;可能会遇到 Protected multilib versions 错误。该错误通常是由于系统中同时存在不同架构&#xff08;如 x86_64 和 i686&#xff09;的同一软件包版本不一致所导致。本文…

24/10/14 算法笔记 循环神经网络RNN

RNN: 一种专门用于处理序列数据的神经网络&#xff0c;它能够捕捉时间序列中的动态特征。RNN的核心特点是其循环连接&#xff0c;这允许网络在不同时间步之间传递信息&#xff0c;从而实现对序列数据的记忆和处理能力。 应用的场景&#xff1a; 自然语言处理&#xff08;NLP&…

ASP.NET Core8.0学习笔记(二十)——EFCore导航属性与外键

一、什么是实体间关系 数据库表&#xff08;实体&#xff09;之间的关系&#xff1a;一对一&#xff08;学生-成绩&#xff09;、一对多&#xff08;学生-科目&#xff09;、多对多&#xff08;教师-班级&#xff09;。数据库中&#xff0c;每一个实体可以由主键唯一标识&…

如何在Android中存储数据?

在Android中存储数据是开发过程中至关重要的一环&#xff0c;根据数据的类型、大小、访问频率及安全性需求&#xff0c;开发者可以选择多种存储方式。以下是Android中存储数据的几种主要方式&#xff0c;每种方式都有其特定的应用场景和优缺点。 一、SharedPreferences Share…