题解:P6377 [PA 2010] Termites
先把题目转化成这样:
有一个变量
s ,两人按照题设中的规则取数,先手取得x 会使得s \larr s + x ,后手取得会使s \larr s - x ,先手要使s 最大,后手要使s 最小,求s 。
可以发现这个题和原题本质相同,并且两人的利益有了直接冲突,这样更好分析一些。
我们分析题目的形式,是若干个双端队列加上(至多)两个栈。
先考虑一个单谷双端队列的情况(先单调不升,后单调不降),我们声称最优策略是每次取左右两边的较大值。
证明:假设一个人不这么做,那么如果另一个人不吃这套,还是坚持取最大值,你会发现结果还不如取最大值。
这样就解决了单谷的问题。继续考虑一个不是单谷的情况:
证明:可以看出两人都想要取得更大的数
最后考虑一下前后两个栈的问题。我们把这两个栈拼成一个双端队列,中间加一个