1 条题解
-
1
对于一个序列 ,我们尝试分析 的长度较短的子序列是否是糟糕的。
对于 的一个长度为 的子序列 :
-
若 ,易得 不为糟糕的序列。
-
若 ,设 ,其中 ,则 是糟糕的 $\Leftrightarrow b_0 < \dfrac{b_0+b_1+b_2}3 < b_1\leq b_2\Leftrightarrow b_0+b_2 < 2b_1$。
观察发现,对于一个好的序列 ,其长度为 的子序列就必须有较多的性质。猜想:是否只需要考虑长度为 的子序列?
设长度为 的糟糕的序列 的中位数为 ,其中 。若 的任意一个长度为 的子序列都不是糟糕的序列,则由糟糕的序列的定义,且 ,则
$$2\sum_{j=1}^mb_j=\sum_{j=1}^m\left(b_j+b_{n-j+1}\right)\geq 2mb_i \Rightarrow b_i\leq\frac 1m\sum_{j=1}^mb_j. $$又由 为一个糟糕的序列,易得 ,与上式矛盾。所以我们得出了——
引理 1: 对于任意一个糟糕的序列 ,都存在它的一个长度为 的糟糕的子序列。
对于一个坏的序列 ,必定存在 的一个子序列是糟糕的,又由引理 1 得必定存在这个糟糕子序列的一个糟糕的子序列长度为 ,而这个长度为 的序列也是 的子序列,于是我们就得出了——
引理 2: 对于一个序列 ,若不存在它的一个长度为 的子序列是糟糕的,则 必定是好的序列。
枚举要取出的子序列的最小值 ,此时取数上界 。则下一个选择的数 必须满足 ,那么只需每次考虑贪心选择序列中属于区间 的数中满足 的最大数 ,并将取数上界更新为 即可。
-
- 1
信息
- ID
- 7489
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- 递交数
- 2
- 已通过
- 1
- 上传者