码迷,mamicode.com
首页 > 其他好文 > 详细

巴什博弈

时间:2019-04-08 01:02:50      阅读:339      评论:0      收藏:0      [点我收藏+]

标签:巴什博弈   namespace   ring   color   int   个数   ret   using   style   

问题描述:

  有一堆物品,共n个,两人轮流从这堆物品中取,规定每次至少取一个,至多m个,获胜条件分为两种,分别是最后取光者胜或者是最后取光者败。

分析:

  1.假如物品个数小于等于m个,那么第一个人就能一次取完。

  2.假如物品个数等于m加一个,第一个人取不大于m的任意个第二个人都能取完。

  3.假如物品个数为m+1的倍数,那么无论第一个人取多少个,第二个人都做到他取完之后物品剩余个数是m的倍数。

  4.假如物品个数不是m+1的倍数,那么第一个人一定能做到他取之后使得物品个数为m+1的倍数

  结论:物品个数为m+1的倍数时,先手必输。

代码:

#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>

using namespace std;

int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    if(n%(m+1)==0)printf("2\n");
    else printf("1\n");
    return 0;
}

 

巴什博弈

标签:巴什博弈   namespace   ring   color   int   个数   ret   using   style   

原文地址:https://www.cnblogs.com/wz-archer/p/10662131.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!