题解:AT_arc148_d [ARC148D] mod M Game
Solution
显然博弈论,考虑从最后的局面开始分析这道题。
因为一共有
并设当前两人分别拿的数之和为
那么作为先手的 Alice 肯定有两种选择,若两种选择都无法让 Alice 赢才会让 Bob 赢。
于是有
于是可得有
推得满足条件需要有
那么不妨将满足条件的一对数
所以后手每次去取先手取的数所对应的那个数即上面成为配对的数就是最优策略。
显然若两两相等的数抵消后,若还有数则必须满足第二项能匹配完,此时有
由于有
接着考虑证明不满足时必定无解。
依旧先让两两能匹配的数抵消后,那么这时候先手不管是选什么后,都相当于与后手交换了真正的选取顺序,即 Alice 把必败的局面给了 Bob,则又回到了开始的问题,参考其他题解也有相当于 Alice 用 Bob 本来准备用来打败 Alice 的方法打败了 Bob。即先手也做能配对则配对的方法。
于是直接做即可,代码很短而且码风比较清奇就不展示了。