【题解】[P3129 USACO15DEC]高低卡(白金)High Card Low Card (Platinum)
考虑贪心。
枚举在第几局改变规则,在改变规则之前,尽量出比它大的最小的牌,在改变规则之后,尽量出最大的比它小的牌。前面记录一个(f(x))后面记录一个(g(x))
此时,你会发现,可能方案选择重复了,怎么办??
一般人都会放弃,但是这是正确的。
证明如下:
假设我们方案重复了(1)次,则必定也有一张多出来的牌。由于不存在相同的牌,则这张多出来的牌,必定比那张重复用的牌大或者小。那么,这张牌一定可以代替两种规则中都使用了一次的那张牌。不影响结果。
一张牌重复了多次时,根据上述推理,显然成立。
证毕
于是我们就可以愉悦的贪心了。
这就启示我们一定不能轻易放弃想出来却感觉不正确的算法。对于这样存在矛盾或缺陷的算法,要抓住矛盾的本质,并且推导这样的矛盾到底会不会影响答案。并且要注意矛盾所带来的影响,好的或者坏的。