定二分所谓的界+调整法:[AGC045B] 01 Unbalanced

本文搬运自本人高中时期CSDN博客,若图片加载不出来,可到原文查看:https://blog.csdn.net/zhangtingxiqwq/article/details/135125239

https://www.luogu.com.cn/problem/AT_agc045_b

考虑0为1,1为-1,然后就是使前缀和极差最小。(套路1)

一个常见思路是二分,也就是定上界M,使下界尽可能大,但此题不满足单调性,所以不能够二分。

我们考虑调整法。我们先让所有?为-1

然后求出当前max值为Z。则M的下界为Z。

如果一个?由-1变1,使后缀整体+2。如果满足后缀max小于等于Z,我们就可以使其调整为1。因此我们就有了一个贪心的思路。

显然上界为Z和Z+1都要考虑,Z+2呢?

我们调整后,上界+2,但下界最多+2,也就是极差并不会变小,没有意义,所以我们直接试Z和Z+1即可。

在这里插入图片描述