因子游戏题解

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

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

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

全部评论

相关推荐

28小凳也想实习:项目不用一个业务一个轮子吗,刷牛客好多人说要一业务一轮子
点赞 评论 收藏
分享
02-08 15:53
门头沟学院 Java
CoderEcho:让公司知道便宜没好货
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务