88 lines
1.4 KiB
Markdown
88 lines
1.4 KiB
Markdown
# 中位数
|
||
|
||
## 题目背景
|
||
|
||
1.5s, 512MB
|
||
|
||
定义一个序列 $A[0,1,...,N-1]$ 的中位数为将 $A$ 升序排序之后的中间元素 $A'[N/2]$;如果 $N$ 为偶数,则序列可以有 $2$ 个中位数。
|
||
|
||
定义 $f(A)$ 为序列 $A$ 的中位数在序列中的出现次数,如果序列有 $2$ 个不同中位数,则为它们出现次数的**较大值**。
|
||
|
||
## 题目描述
|
||
|
||
现在给定序列 $A[0,1,...,N-1]$,请你计算其所有子段 $f$ 值的最大值:
|
||
$$
|
||
max_{0\le l \le r< N}\{ f(A[l...r])\}
|
||
$$
|
||
|
||
## 输入格式
|
||
|
||
第 $1$ 行: $N$
|
||
|
||
第 $2$ 行: $A[0] A[1] \cdots A[N-1]$
|
||
|
||
## 输出格式
|
||
|
||
输出1行1个整数代表答案
|
||
|
||
## 样例 #1
|
||
|
||
### 样例输入 #1
|
||
|
||
```
|
||
7
|
||
1 2 3 1 2 1 3
|
||
```
|
||
|
||
### 样例输出 #1
|
||
|
||
```
|
||
3
|
||
```
|
||
|
||
## 样例 #2
|
||
|
||
### 样例输入 #2
|
||
|
||
```
|
||
9
|
||
1 1 2 3 4 3 2 1 1
|
||
```
|
||
|
||
### 样例输出 #2
|
||
|
||
```
|
||
2
|
||
```
|
||
|
||
## 样例 #3
|
||
|
||
### 样例输入 #3
|
||
|
||
```
|
||
14
|
||
2 6 2 5 3 4 2 1 4 3 5 6 3 2
|
||
```
|
||
|
||
### 样例输出 #3
|
||
|
||
```
|
||
3
|
||
```
|
||
|
||
## 提示
|
||
|
||
### 约束条件
|
||
|
||
- $1 \leq N \leq 5 \times 10^{5}$
|
||
- $1 \leq A[i] \leq N$
|
||
|
||
### 子任务
|
||
|
||
1. (11 分):$N \leq 100$ 。
|
||
2. (17 分):$N \le 2 \times 10^{3}$ 。
|
||
3. (7 分):存在一个 $x$ 满足 $\forall 0 \leq i<x, A[i] \leq A[i+1]$ 且 $\forall x<i<N, A[i] \leq A[i-1]$ 。
|
||
4. (12 分):$A[i] \leq 3$ 。
|
||
5. (13 分):序列中所有数出现最多不超过 $2$ 次。
|
||
6. (22 分):$N \leq 8 \times 10^{4}$ 。
|
||
7. (18 分):没有额外限制。 |