这题做法还算比较明显, 500 500 500 的数据范围也暗示了做法。
考虑直接二分所求答案,在 O ( n 2 ) \mathcal{O}(n^2) O(n2) 的时间内进行验证。如何验证 x x x 的合法性?
可以逐行操作。比如先考虑把第一行分成 ≥ x \geq x ≥x 的 b b b 块。如果不可以,那么就加上第二行再分,一直叠加直到可以分出这样的 b b b 块为止,假设叠加到了第 p p p 行,那么 [ 1 , p ] [1,p] [1,p] 就作为横向切的第一刀(即切在 p p p 行处),然后再对 p + 1 p+1 p+1 行进行同样的操作。最后判断能否切到 a a