题目链接
题意: 有一个数p=1,甲乙两人轮流操作,每次可以把p乘2~9中的一个数,给定一个n,当一个人操作后p>=n,那么这个人赢,问先手是否必胜。
- 必胜状态:存在一种走法走到一个必败状态。
- 必败状态:后继状态都为必胜状态。
我们可以知道>=n的数都为必败状态,可以转移到>=n的最小的数为n/9(上取整),所以
n/9~n-1都为必胜态,同理n/9/2(都为上取整)为最小的必须转移到n/9~n-1(必胜状态)的状态,所以n/9/2~n/9-1为必败态,于是就可以这样推到1,看一下1是必胜态还是必败态输出即可。
ps. a/b(上取整)可以写为 (a-1)/b+1(整除)。方便运算。
代码:https://gist.github.com/zrt/858e1f5558e93ca20d1d
游戏博弈论:先手必胜策略
本文探讨了一个简单的数学游戏,通过分析游戏规则,找出先手玩家的必胜策略。具体而言,游戏双方轮流将一个初始值为1的数乘以2到9之间的任意整数,首先使该数大于等于给定目标值n的玩家获胜。文章通过递归推理,确定了哪些数值状态下先手玩家具备必胜策略。
271

被折叠的 条评论
为什么被折叠?



