NOIP 2022 T2 喵了个喵 小结
这个题很思维吧。
主要思路就是考虑特殊的栈底消除。
首先 2k-2 是容易的,因为这样可以保留一个空栈。
然后你考虑下一个加入数炸掉了。
你先占掉一个空栈再看看怎么调整。
考虑你接下来如果加入栈顶元素一定不会让情况变坏。
那么你就考虑接下来最近的栈底。
我只要管他的栈顶元素就可以了。
考虑 1 2 3 4 5 6。排成这样。
1 3 5
2 4 6
接下来的数列是 7 5 5 5 3 3 4。
首先不用管 5,一定不劣。
看看 4 上面的 3。
如果我把 7 放空栈里了,那么就炸了,因为 4 消不掉。
但是看这个 3 一定只会剩下一个,具体是那个我不用管,因为如果我这样能做接下来也一定能做。
我当时想了好久,发现如果我把7放 3 上面不会有影响。
并且接下来 4 消掉这个栈又是可以的了。
但是如果我是 7 5 5 5 3 7 3 7 4.
我就不能把接下来的 7 放 3 上面了,因为这样消不掉。
所以我放空栈里。
如果我是 7 3 3 3 5 5 4。
那我 3 就没了。
那就直接换一个空栈就行了。
然后这个代码还真不好写,要判好多东西,建议写一个 checker。

浙公网安备 33010602011771号