《P2839 [国家集训队] middle》
题目描述一个长度为 n 的序列 a设其排过序之后为 b其中位数定义为 bn/2​其中 a,b 从 0 开始标号除法下取整。给你一个长度为 n 的序列 s。回答 Q 个这样的询问s 的左端点在 [a,b] 之间右端点在 [c,d] 之间的子区间中最大的中位数。其中 abcd。位置也从 0 开始标号。我会使用一些方式强制你在线。输入格式第一行序列长度 n。接下来 n 行按顺序给出 a 中的数。接下来一行 Q。然后 Q 行每行 a,b,c,d我们令上个询问的答案是 x如果这是第一个询问则 x0。令数组 q{(ax)modn,(bx)modn,(cx)modn,(dx)modn}。将 q 从小到大排序之后令真正的要询问的 aq0​bq1​cq2​dq3​。输入保证满足条件。输出格式Q 行依次给出询问的答案。输入输出样例输入 #1复制5 170337785 271451044 22430280 969056313 206452321 3 3 1 0 2 2 3 1 4 3 1 4 0输出 #1复制271451044 271451044 969056313说明/提示对于 5% 的数据n,Q≤100对于另 25% 的数据n≤2000对于 100% 的数据1≤n≤200001≤Q≤250001≤ai​≤109。#includecstdio #includealgorithm #includevector using namespace std; #define lc(p) (seg[p].lc) #define rc(p) (seg[p].rc) #define sum(p) (seg[p].s) #define lmax(p) (seg[p].lm) #define rmax(p) (seg[p].rm) const int N20010; int n,m,tot,last,a,b,c,d;; int val[N],id[N],rt[N]; vectorintpos[N]; struct Seg { int lc,rc; int s,lm,rm; }seg[N*60]; inline bool cmp(int x,int y){return val[x]val[y];} inline void up(int p) { sum(p)sum(lc(p))sum(rc(p)); lmax(p)max(lmax(lc(p)),sum(lc(p))lmax(rc(p))); rmax(p)max(rmax(rc(p)),sum(rc(p))rmax(lc(p))); } void build(int p,int l,int r) { ptot; if(lr){sum(p)lmax(p)rmax(p)-1;return;} int mid(lr)1; build(lc(p),l,mid);build(rc(p),mid1,r); up(p); } void insert(int pre,int p,int L,int R,int pos) { if(!p)ptot; if(LR){sum(p)lmax(p)rmax(p)1;return;} int mid(LR)1; if(posmid)rc(p)rc(pre),insert(lc(pre),lc(p),L,mid,pos); else lc(p)lc(pre),insert(rc(pre),rc(p),mid1,R,pos); up(p); } Seg query(int p,int L,int R,int l,int r) { if(LlRr)return seg[p]; int mid(LR)1; if(lmid)return query(rc(p),mid1,R,l,r); else if(rmid)return query(lc(p),L,mid,l,r); else { Seg ans,lsonquery(lc(p),L,mid,l,r),rsonquery(rc(p),mid1,R,l,r); ans.s(lson.srson.s); ans.lmmax(lson.lm,lson.srson.lm); ans.rmmax(rson.rm,rson.slson.rm); return ans; } } inline bool check(int mid) { //printf(test::%d %d %d %d %d\n,a,b,c,d,id[mid]); int res0;Seg ans; ansquery(rt[mid],1,n,a,b);resans.rm; //printf(rmax::%d ,ans.rm); if(b1c-1)ansquery(rt[mid],1,n,b1,c-1),resans.s; ansquery(rt[mid],1,n,c,d);resans.lm; //printf(lmax::%d \n,ans.lm); return res0; } int main() { scanf(%d,n); for(int i1;in;i)scanf(%d,val[i]),id[i]i; sort(id1,idn1,cmp);//int cntunique(id1,idcnt1)-(id1); build(rt[n1],1,n); for(int in;i;i--)insert(rt[i1],rt[i],1,n,id[i]); scanf(%d,m); for(int i1;im;i) { scanf(%d%d%d%d,a,b,c,d); a(alast)%n1;b(blast)%n1; c(clast)%n1;d(dlast)%n1; int tmp[5]{0,a,b,c,d}; sort(tmp1,tmp41); atmp[1],btmp[2],ctmp[3],dtmp[4]; int l1,rn,ans; while(lr) { //puts(!!); int mid(lr)1; if(check(mid))ansmid,lmid1; else rmid-1; } printf(%d\n,lastval[id[ans]]); } return 0; }

相关新闻

基于C#实现逐点插入法生成Delaunay三角网

基于C#实现逐点插入法生成Delaunay三角网

一、核心算法实现(DelaunayTriangulator.cs) using System; using System.Collections.Generic; using UnityEngine;public class DelaunayTriangulator {public struct Triangle{public Vector2 A, B, C;public Vector2 CircumCenter;public float Circ…

2026/5/17 3:42:31 阅读更多 →
鸿蒙 HarmonyOS 6 | AI Kit 集成 Core Vision Kit 基础视觉服务

鸿蒙 HarmonyOS 6 | AI Kit 集成 Core Vision Kit 基础视觉服务

文章目录前言一、 Core Vision Kit 的能力全景与核心价值二、 通用文字识别:从图像到信息的结构化转化三、 人脸检测与比对:构建端侧安全验证链路四、 主体分割:实现“一键扣图”的底层逻辑五、 多目标识别与骨骼点检测:探索高级交…

2026/5/17 3:42:31 阅读更多 →
全场震撼!当 AI 大模型集体穿越“王者峡谷”:GPT-4o 是武则天,DeepSeek 竟是韩信?谁才是真正的上分怪?

全场震撼!当 AI 大模型集体穿越“王者峡谷”:GPT-4o 是武则天,DeepSeek 竟是韩信?谁才是真正的上分怪?

第一章:欢迎来到“AI 历 2024”峡谷 各位召唤师,哦不,各位开发者,请留步! 如果你最近没听说过 DeepSeek,没用过 GPT-4o,没被 Claude 3.5 的代码能力惊艳过,那你可能是在断网的深山里…

2026/7/3 16:52:09 阅读更多 →

最新新闻

了解并使用MVVM框架

了解并使用MVVM框架

到底有哪些开源MVVM框架? 前面介绍了WPF的基本概念和一些相关知识,我们了解到开发WPF应用程序可以使用现成的框架和模式,最为合适的莫过于时下正热的MVVM模式,所以这里我们也列出针对MVVM模式的已有开源框架: 图3 上面…

2026/7/5 2:28:37 阅读更多 →
原来网站排名还能“买”到?

原来网站排名还能“买”到?

在传统SEO时代,网站排名确实可以通过竞价排名(SEM)直接“购买”关键词位置,但那种模式本质是付费买流量,一旦停止付费,排名瞬间消失。而在GEO(生成式引擎优化)时代,所谓的…

2026/7/5 2:26:36 阅读更多 →
告别技术空谈:九尾狐AI发布2026年最新企业AI培训体系,主推‘战略到变现‘全周期陪跑模式

告别技术空谈:九尾狐AI发布2026年最新企业AI培训体系,主推‘战略到变现‘全周期陪跑模式

AI短视频矩阵运营:2026企业培训如何实现从战略到变现的全周期陪跑 作为一名长期在一线协助中小企业落地AI应用的博主,我见过太多这样的场景:老板花大价钱请了团队做培训,员工课上听得热血沸腾,回到工位却无从下手&…

2026/7/5 2:26:36 阅读更多 →
西门子S7-1200 PLC轴运动控制配置与优化指南

西门子S7-1200 PLC轴运动控制配置与优化指南

1. 西门子S7-1200 PLC轴运动控制基础架构在工业自动化领域,轴运动控制是PLC应用中最具挑战性的任务之一。西门子S7-1200系列PLC凭借其紧凑的机身设计和强大的运动控制功能,成为中小型自动化项目的首选控制器。这套系统最核心的组件是工艺对象&#xff08…

2026/7/5 2:26:36 阅读更多 →
[MAF预定义ChatClient中间件-05]动态修改ChatOptions和请求消息

[MAF预定义ChatClient中间件-05]动态修改ChatOptions和请求消息

1. 利用ConfigureOptionsChatClient交替使用不同的模型 如下的程序演示了如何利用ConfigureOptionsChatClient中间件来动态地配置ChatOptions的ModelId属性,从而实现交替使用不同的模型来生成响应的功能。如代码片段所示,我们根据OpenAIClient创建了一个…

2026/7/5 2:24:36 阅读更多 →
Linux syslog日志权限出错

Linux syslog日志权限出错

一、Linux syslog日志权限 Linux syslog日志权限出错通常是由于文件权限设置不当或用户权限不足导致的,可通过检查日志文件权限、所有者、用户权限,以及SELinux设置来定位并解决问题。 以下是具体分析和解决步骤: 检查日志文件权限 使用 ls -…

2026/7/5 2:24:36 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻