因子游戏题解

结论:奇数时后手必胜,偶数时,如果是2的奇数次幂,后手必胜,否则先手必胜。
这个结论可以用决策树处理出前100个数的答案然后发现规律。
证明的话:
如果是奇数,当这个奇数是质数时,后手直接赢;
否则这个奇数就是若干个奇数的积。
此时无论先手如何变化,都会将奇数变成偶数。
后手只需要和先手减去相同的数即可。

如果是偶数,首先把因子2提出来,偶数就是若干个2和若干个奇数的乘积。
当这些奇数只有1时,每次变化相当于保留一部分2,将剩下的部分变成一个奇质数或者1,因为2的次幂减一都是质数或1,如果先手变化成质数,后手可以反将剩下的2也变成1个奇质数或者1,先手就陷入了奇数的必败态,显然先手不会这么做。
先手的做法应该是,将一个2变成1,这样后手也会面对一个2的次幂的情况。
后手也应当采取相同的策略。
因此如果x是2的奇数次幂,后手胜出,偶数次幂先手胜出。

最后再来看若干个2且奇数部分不为1的情况。
先手直接将若干个2变成奇质数或者1,后手面对奇数,陷入必败态。

全部评论

相关推荐

06-15 18:44
黄淮学院 Java
Lynn012:如果是居民楼还是算了吧,看着有点野呢
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 13:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务