P10241. 「一本通 6.7 例 1」取石子游戏 1
题目描述
有一种有趣的游戏,玩法如下:
玩家:2人
道具:N颗石子
规则:
-
游戏双方轮流取石子;
-
每人每次取走若干颗石子(最少取1颗,最多取K颗);
-
石子取光,则游戏结束;
-
最后取石子的一方为胜。
假如参与游戏的玩家都非常聪明,问最后谁会获胜?
输入格式
输入仅一行,两个整数N和K。
输出格式
输出仅一行,一个整数,若先手获胜输出1,后手获胜输出2。
数据范围与提示
对于全部数据,1<=N<=105
一道经典的博弈论,我们只需要判断一下n是否是k+1的倍数便解完了
证明:先手无论是从1到k中选哪个数,后手都可以使这一轮总共取出k+1个石子,并且保证第k+1个石子是自己取走的,所以若n是k+1倍数的时候,第n个石子一定能被后手取走。
#include<bits/stdc++.h> using namespace std; int n,k; int main(){ scanf("%d%d",&n,&k); if(n%(k+1)==0) puts("2"); else puts("1"); return 0; }
综上所述,我是蒟蒻
2022-10-27 19:36:01
梦与现实间挣扎着,所求为何
你可以借走我的文章,但你借不走我的智慧 虽然我是傻逼本文来自博客园,作者:cztq,转载请注明原文链接:https://www.cnblogs.com/cztq/p/16833478.html

浙公网安备 33010602011771号