bdfz_2024_summer/day4/U461920/U461920.md
2024-08-06 08:31:25 +08:00

1.4 KiB
Raw Blame History

中位数

题目背景

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 分):没有额外限制。