P1076潮声四界定音tonic

时间限制 2500 ms内存限制 512 MiB通过率 —
显示算法标签二分答案 · 可持久化线段树 · 中位数

【题目背景】

群钥归位、星门开启后,tfbz 在通往内陆的旧档案库中发现了一卷由潮声写成的长谱。谱面以四道界标圈出每次可以截取的范围,Ehundategh 需要从层层回声中找出其中最清晰的一声主音。

【题目描述】

长谱上依次记录着 nn 个整数 x1,x2,,xnx_1,x_2,\ldots,x_n,每个整数表示一段潮声的音高。

对于一个非空连续片段,将其中的所有音高从小到大排列。若片段长度为 zz,排列后的第 z/2+1\lfloor z/2\rfloor+1 个音高称为这个片段的定音。特别地,当片段长度为偶数时,定音是中间两个音高中较大的一个。

Ehundategh 一共需要处理 qq 组四界记录。每组记录给出四个位置 a,b,c,da,b,c,d,满足 ab<cda\leq b<c\leq d。Ehundategh 可以在 [a,b][a,b] 中选择片段的左端点 ll,并在 [c,d][c,d] 中选择片段的右端点 rr

形式化题意:给定长度为 nn 的整数序列 {x}\{x\}qq 组整数 a,b,c,da,b,c,d,对于每组询问,求

maxalb, crdmed(xl,xl+1,,xr),\max_{a\leq l\leq b,\ c\leq r\leq d}\operatorname{med}(x_l,x_{l+1},\ldots,x_r),

其中 med\operatorname{med} 表示一个非空序列的中位数,当序列长度为偶数时取中间两个数中较大的一个。

【输入格式】

从文件 tonic.in\textbf{\textit{tonic.in}} 中读入数据。

本题包含多组测试数据。

输入的第一行包含一个非负整数 cc 与一个正整数 TT,分别表示测试点编号与测试数据的组数。c=0c=0 表示该测试点为样例。

对于每组测试数据:

第一行包含两个正整数 n,qn,q,分别表示长谱长度与四界记录的数量。

第二行包含 nn 个整数 x1,x2,,xnx_1,x_2,\ldots,x_n,表示长谱上的音高。

接下来 qq 行,每行包含四个正整数 a,b,c,da,b,c,d,表示一组四界记录。

【输出格式】

输出到文件 tonic.out\textbf{\textit{tonic.out}} 中。

对于每组四界记录输出一行一个整数,表示能够得到的最大定音

【样例 1 输入】

0 25 31 5 2 4 31 2 4 52 2 4 41 1 3 56 26 1 5 2 4 31 2 4 62 3 5 6

【样例 1 输出】

44454

【说明/提示】

【样例 1 解释】

在第一组测试数据的第一组记录中,选择 l=1,r=4l=1,r=4 时,片段中的音高从小到大为 1,2,4,51,2,4,5定音44。其余合法选择都不能得到更大的定音

【样例 2】

见选手目录下的 tonic/tonic2.in\textbf{\textit{tonic/tonic2.in}}tonic/tonic2.ans\textbf{\textit{tonic/tonic2.ans}}

该组样例符合测试点 131\sim 3 的数据范围。

【样例 3】

见选手目录下的 tonic/tonic3.in\textbf{\textit{tonic/tonic3.in}}tonic/tonic3.ans\textbf{\textit{tonic/tonic3.ans}}

该组样例符合测试点 474\sim 7 的数据范围。

【样例 4】

见选手目录下的 tonic/tonic4.in\textbf{\textit{tonic/tonic4.in}}tonic/tonic4.ans\textbf{\textit{tonic/tonic4.ans}}

该组样例符合测试点 8118\sim 11 的数据范围。

【样例 5】

见选手目录下的 tonic/tonic5.in\textbf{\textit{tonic/tonic5.in}}tonic/tonic5.ans\textbf{\textit{tonic/tonic5.ans}}

该组样例符合测试点 121512\sim 15 的数据范围。

【样例 6】

见选手目录下的 tonic/tonic6.in\textbf{\textit{tonic/tonic6.in}}tonic/tonic6.ans\textbf{\textit{tonic/tonic6.ans}}

该组样例符合测试点 162016\sim 20 的数据范围。

【数据范围】

对于 100%100\% 的数据,保证 1T101\leq T\leq 102n1052\leq n\leq 10^51q1051\leq q\leq 10^5xi109\lvert x_i\rvert\leq 10^91ab<cdn1\leq a\leq b<c\leq d\leq n。对于同一个测试点,保证 n,q105\sum n,\sum q\leq 10^5

vv 表示一组测试数据的序列中不同整数的数量。

测试点编号n,qn,qvv特殊性质
131\sim 330\leq 3030\leq 30
474\sim 7n105, q200n\leq 10^5,\ q\leq 200105\leq 10^5
8118\sim 11105\leq 10^5105\leq 10^5
121512\sim 15105\leq 10^550\leq 50
162016\sim 20105\leq 10^5105\leq 10^5

特殊性质:每组四界记录均满足 a=ba=bc=dc=d

【题解】

已公开 1 篇题解,官方题解会优先显示。

查看题解