The Stones Game【取石子博弈 & 思维】

The Stones Game【取石子博弈 & 思维】

2020.7.22补题

Problem G. The Stones Game

在这里插入图片描述

题意

有n个石头,m个选手

每个选手要做2步操作:

(1)拿一块石头或者不拿

(2)如果上一个选手的操作(1)是拿了石头 或者当前选手是1号选手,那么这一步不可以拿石头,反之,必须拿石头。

" if this is not the first turn and in the previous turn the player decided not to remove a stonein his/her first step, then the current player must remove a stone in this step" 这句话很难理解~,把它变成否定句,and变成or,就可以得到上面的那句话。

谁最后取完石头睡赢,问n个石头,m个选手下,y是否处于必赢态。

分析

1号选手第(1)步拿了石头,(2)步不能拿石头,那么2号选手第(1)步可以选择拿和不拿,第(2)步不能拿。

因此2个选手最少要拿1个石头,最多拿2个石头、

如果是有3个选手,也可以推得最多拿3个,最少拿2个。

因此如果有3个选手,要拿3个石头,那么3号选手是必赢态。

有n个石头,m个选手时,n%m号选手是必赢态。

#include "bits/stdc++.h"
using namespace  std;
int main()
{
    int cas;
    scanf("%d",&cas);
    while (cas--)
    {
        int n,m,y;
        scanf("%d %d %d",&n,&m,&y);
        int k=n%m;
        if(k==0)k=m;
        if(y==k)cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是Mally呀!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值