题解:P12079 [OOI 2025] Card Flip
你应该已经搞过好多两个人取石子硬币叶子之类的题目了,这里面总有一个核心——自由选择接下来某个状态的先后手。
何为选择先后手?比如有一个游戏,在黑板上有从一到某个大数的正整数,每次选择一个数把它和它的因数删了,谁先动不了谁就输了。而这一题我们可以考虑不包括一的情况(称为新情况),肯定先手后手会有一个能赢的。如果新情况下后手赢,先手就先选一,他就成了新情况的后手;反之先手就按照在新情况中先手的选法选,一肯定是它的因数会被直接删了,相当于成为新情况的先手。
就像这样,在一些存在先后关系的游戏中(比如这题要求先选前头的在选后头的,刚才的游戏要先选择选不选一)如果你能通过某个选择让自己拥有在接下来某个状态选择先后手的权力你必赢!
考虑怎么在这道题选先后手,假如只有一张双面牌,轮到你走,翻牌可以让这张牌多消耗一个回合被消去,在消去它之后的那个状况下先后手的顺序于不翻直接消是相反的,这就控制了选先后手的权力。
而如果有好多张双面牌怎么办呢?在若干双面变成单面后只剩一张双面时谁拿到谁就赢了,所以其他牌是为拿到最后的双面牌做铺垫。
由于双面牌是决定其背面被消去的时候双方先后手,所以要争取一张牌就要确保其背面的数字小于要争的牌(否则它只影响那张要争的牌后面的单面牌数量),按正面数字排序,从大到小,更新实际争取的牌,就比如说样例一中第一张双面牌(正面五)决定了输赢而第二张决定了第一张的归属,所以双方实际在争取第二张。
最后统计一下谁能拿到实际争取的牌就行了(看这张牌前面的牌数的奇偶性)。