码迷,mamicode.com
首页 > 其他好文 > 详细

题解 P4734 【[BalticOI 2015]Hacker】

时间:2020-10-18 17:04:54      阅读:24      评论:0      收藏:0      [点我收藏+]

标签:前缀   系统   一个   asa   www   http   二分   价值   第一步   

分析:

我们发现假如第一步选择位置 \(i\) ,那么系统操作者能把 \(\text{Byteasar}\) 限制成经过 \(i\) 的长度为 \(\lceil \dfrac{n}{2} \rceil\)

的任意一个序列。那么系统操作者肯定会选择价值最小的那个。

现在问题就是求出经过每个位置的长度为 \(\lceil \dfrac{n}{2} \rceil\)

的序列的价值的最小值,然后每个位置最小值的最大值就是答案。

现在考虑怎么求出这个最大值。

我们发现这样的序列一共只有 \(n\) 个,我们可以对这 \(n\) 个序列的价值从大到小排个序。

然后对每个序列的范围做一下区间覆盖。显然当一个位置被覆盖了 \(\lceil \dfrac{n}{2} \rceil\) 次的时候,当前的序列的价值就是答案。

区间覆盖线段树就可以了。

\(\text{code1}\)

BUTT

线段树虽然能过,但是好慢啊。

我们发现,用线段树进行操作好像有点多余,其实完全可以只通过前缀和 \(+\) 二分的方式来维护序列。

再加一点点优化。。。

我们的简短的代码就完成力!线段树就是弱欸。

\(\text{code2}\)

完力。

题解 P4734 【[BalticOI 2015]Hacker】

标签:前缀   系统   一个   asa   www   http   二分   价值   第一步   

原文地址:https://www.cnblogs.com/nakiri-ayame-suki/p/13834729.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!