P7514 「省选联考 2021 A & B 卷」卡牌游戏
翻的肯定是最前面和最后面的若干张,翻中间不会使最大值减小或最小值增大。
容易发现,翻面一定得改变最小值或最大值才有意义,所以一旦翻之前的值已经不是最值就没必要翻。
先找出前面最多翻几张,然后从多到少枚举。后面在翻之前一定必须是唯一的最大值,并且不能翻出小于等于前面翻的最后一张翻之前的值。
前面翻的越少最小值单调不增,也越不会影响最大值;后面翻的越多最大值单调不增,也越会影响最小值。所以最后面翻的数量肯定是单调不降的,维护前后缀最值然后双指针。
时间复杂度 \(O(n)\),而且存在相同数并不会影响这个做法的正确性。

浙公网安备 33010602011771号