二分最终最小值 xxx。
若 Ai<xA_i<xAi<x,至少需要对它执行 ⌈x−Aia⌉\left\lceil\frac{x-A_i}{a}\right\rceil⌈ax−Ai⌉ 次增加;若 Ai≥xA_i\ge xAi≥x,它最多能承受 ⌊Ai−xb⌋\left\lfloor\frac{A_i-x}{b}\right\rfloor⌊bAi−x⌋ 次减少而仍不低于 xxx。每次操作恰好使用一次增加和一次减少,因此当所有可提供的减少次数不少于所需增加次数时,xxx 可行;反之任何操作方案都无法补足缺口。这个判定关于 xxx 单调,故可在初始最小值到初始平均值之间二分最大可行值。
判定一次需要 O(N)O(N)O(N) 时间,二分次数为 O(log109)O(\log 10^9)O(log109),总时间复杂度为 O(Nlog109)O(N\log 10^9)O(Nlog109),空间复杂度为 O(N)O(N)O(N);次数总和使用 64 位整数保存。
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户