题面:https://ac.nowcoder.com/acm/contest/549/I

一题nim博弈题;

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

nim博弈就是:有n堆石子,两个人轮流从任意一堆石子中拿任意数量的石子,谁无法操作了谁就输了;

将n个数异或,如果结果等于0,那后手获胜,否者先手获胜;

如果取石子数限制为[1,k],那将每堆石子mod(k+1);

#include<iostream>
#include<cstring>
using namespace std;
const int maxn=1e5+10;
int n,k,a[maxn],sum;
int main()
{
    cin>>n>>k;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        sum^=a[i];
    }
    if(sum!=0) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    return 0;
}

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄