标签:前缀 系统 一个 asa www http 二分 价值 第一步
我们发现假如第一步选择位置 \(i\) ,那么系统操作者能把 \(\text{Byteasar}\) 限制成经过 \(i\) 的长度为 \(\lceil \dfrac{n}{2} \rceil\) 。
的任意一个序列。那么系统操作者肯定会选择价值最小的那个。
现在问题就是求出经过每个位置的长度为 \(\lceil \dfrac{n}{2} \rceil\) 。
的序列的价值的最小值,然后每个位置最小值的最大值就是答案。
现在考虑怎么求出这个最大值。
我们发现这样的序列一共只有 \(n\) 个,我们可以对这 \(n\) 个序列的价值从大到小排个序。
然后对每个序列的范围做一下区间覆盖。显然当一个位置被覆盖了 \(\lceil \dfrac{n}{2} \rceil\) 次的时候,当前的序列的价值就是答案。
区间覆盖线段树就可以了。
BUTT!
线段树虽然能过,但是好慢啊。
我们发现,用线段树进行操作好像有点多余,其实完全可以只通过前缀和 \(+\) 二分的方式来维护序列。
再加一点点优化。。。
我们的简短的代码就完成力!线段树就是弱欸。
完力。
题解 P4734 【[BalticOI 2015]Hacker】
标签:前缀 系统 一个 asa www http 二分 价值 第一步
原文地址:https://www.cnblogs.com/nakiri-ayame-suki/p/13834729.html