Leetcode292.Nim游戏详解

        其实一开始碰到这道题是有点懵的,后来感觉和以前碰到的博弈论题目有点像,就去查了一下资料,发现原来是巴什博弈。于是这道题就相当于这个理论的一个应用。

        你和你的朋友用一堆石头玩游戏,每次你们轮流拿掉 1 - m 块石头。 拿到最后一块石头的人就是获胜者。而当这堆石子个数n为多少时,作为先手的你一定能赢。

        而这个理论可以简单分为两种情况讨论:1.当个数为1-m时,你一定能赢。

                                                                         2.当个数为m+1时,你一定会输。

                                                                         3.当个数为m+2到2m时,只要你留剩m+1个给对手时,你一定会赢。

        综上,我们可以得知当只要剩下个数为(m+1)时,此时的先手一定会输。

        因此,这段代码也可以容易编写出来了。 

       https://github.com/Ford-z/LeetCode/blob/master/877%20%E7%9F%B3%E5%AD%90%E6%B8%B8%E6%88%8F.cpp                                                                                                                                                                                                                                                                           

你可能感兴趣的:(LeetCode)