巴什博奕

有一堆物品,个数为n,两个人轮流从其中拿物品,最少取一个,最多取m个,最后取光者获胜。

  1. 当物品的个数1<=n<=m时,那么先手拿物品的人必胜。
  2. 当物品的个数n=m+1时,先手无论拿几个,后手必胜。
  3. 当物品的个数m+2<=n<=2m,先手可以拿走若干个剩下m+1个给后手,那么先手必胜。

因此,无论先手还是后手,只要其面临的物品个数为m+1时,其必败。

 

 

推广:

  • 当物品个数为n=k*(m+1)+b时

   先手拿走b个,后手拿走x个,那么先手再拿走m+1-x个,即除了先手第一次拿的个外,每轮取走的物品都是m+1,即留给后手的个数总为m+1的整数倍个,那么先手必胜。

 

  • 当物品个数n=k*(m+1)时

    这种情况先手必败(请读者自行分析)。

 

C++代码示例:

int main()
{
    int n,m;
    cin>>n>>m;if(n % (m+1) !=0) 
    cout<<"First"; else
    cout<<"Second"; return 0; }

 

转载于:https://www.cnblogs.com/LMIx/p/10699922.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值