小A取石子
题面: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; }

更多精彩