【题解】P6377 [PA 2010] Termites
先考虑一个双端队列怎么取。
假如所有的双端队列都是单谷,那么一定是每次取最大的决策。
如果一个队列依次是 \(\cdots,x,y,z,\cdots\),且 \(x\le y\ge z\),那么你取完 \(x\) 后对手会取 \(y\),这时候是一个劣的决策,唯一的可能是你想要取 \(z\)。那么这样的结构可以合并为 \(x-y+z\)。从大到小枚举 \(y\) 进行删除这种峰。
一直合并双端队列,最后得到单谷序列即可一直贪心取。
首尾栈可以中间插一个极小值,然后合并成一个双端队列。
复杂度 \(O(n\log n)\)。
浙公网安备 33010602011771号