CF1764G2 Doremy's Perfect DS Class (Medium Version) 题解
前言
思路
前置芝士:CF1764G1 的解法。
考虑在 G1 的基础上进行一个小小的优化。
G1 的最大询问次数是 ,其瓶颈在于当 为偶数时,我们需要预先额外花费 的时间去找到 的位置,从而消除后续询问里 的影响,因为这时 与 一样都具有除以 向下取整的结果唯一的性质。
而 G2 把最大询问次数限制到了 次,所以我们需要找一种更高效的辨别 和 的方式来代替预先询问。
当我们对 和 两个区间进行询问时,除了 和 之外,两个区间里无法配对数字的数量一定是相等的,那我们可以分类讨论 和 的位置:
- 当 和 在同一个区间里时,这个区间里未配对的数字个数会比另一边大 ,于是继续处理这个区间就好。
- 当 和 分居在两个区间里时,两个区间里未配对的数字个数相等,我们只需要对其中一个区间进行一次 的询问,如果得到的结果是 那就证明 不在这个区间里,反之则证明 在另一个区间里,于是我们就可以记录下 所在区间,继续对有 的区间进行询问。
进行这个优化之后,我们就可以把询问次数降低到 ,其中这 次询问就是用来帮助我们辨别 的询问,可以通过此题。
代码:link。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Misaka's Blog!
评论
re