当前位置:首页 > 数学 > 博弈论 > 正文
SSOJ2943取石子游戏1
1622+

题目大意:2个人取n个石子,每次至少取1颗,至多取m颗,无法操作则输,请问先手是否有必胜策略?

有一种有趣的游戏,玩法如下:

玩家: $2$ 人;

道具: $N$ 颗石子;

规则:

1、游戏双方轮流取石子;

2、每人每次取走若干颗石子(最少取 $1$ 颗,最多取 $K$ 颗);

3、石子取光,则游戏结束;

4、最后取石子的一方为胜。

假如参与游戏的玩家都非常聪明,问最后谁会获胜?

【输入】

输入仅一行,两个整数 $N$ 和 $K$ 。

【输出】

输出仅一行,一个整数,若先手获胜输出 $1$,后手获胜输出 $2$。

【输入样例】

23 3

【输出样例】

1

【提示】

数据范围与提示:

对于全部数据, $1≤N≤10^5 ,1≤K≤N$。

解题思路

逐个试一下:0是必败,1~m是必胜,因为可以取1~m颗石子到0,让另一人无法操作。m+1是必败,因为他取完后,另一个人都是必胜状态。之后m个是必胜状态,因为他可以让另一人取的时候只剩下m+1个石子……

小结:能到必败的状态都是必胜状态,因为他可以当对手输;不能到必败状态则必败,因为下一次另一人的状态总是必胜。

程序实现

递推写法:

找到规律:

About

坚决不Copy代码!

本文标签:,,,,,

报歉!评论已关闭.