2018 CERC 混合博弈

N堆石子 先手最多拿A个 后手最多拿B个 每次都至少要拿一个 谁先取完谁赢

如果A和B相等直接就是一个bash博弈

如果一个石堆的石子数少于min(A,B) 则是个nim游戏

我们先讨论只有N=1且A1>min(A,B)的情况 这种情况下无论谁先手 都是拿的多的人赢

因为假设X=A1%B 如果拿的多的人是先手 直接拿X个就赢 如果拿的多的人是后手 则假设先手拿的是Y个

当Y<=X时 则后手再拿X-Y个就赢了 当Y>X时 则后手拿X+B-Y就赢了

同理可证只要有两堆Ai>min(A,B)则就是拿的多的赢 但是有个特殊情况 是只有一堆>min(A,B) 其他堆都<=min(A,B)

这样先手有一种方法可以赢 就是把这个特殊的堆拿到<=min(A,B) 且和其他堆的异或起来为0 简单的来说 就是先手如果可以把这堆拿成一个必胜的nim游戏的话 先手可以赢

posted @ 2019-10-09 21:29  Aragaki  阅读(222)  评论(0编辑  收藏  举报