首页 > 代码库 > HDU Be the Winner [Anti-SG]
HDU Be the Winner [Anti-SG]
传送门
n堆,每次拿走至少一个,剩下的可以分成两堆。最后拿的人输
打表观察发现和Nim游戏一样...裸Anti-SG啊
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>using namespace std;typedef long long ll;const int N=1e6;inline int read(){ char c=getchar();int x=0,f=1; while(c<‘0‘||c>‘9‘){if(c==‘-‘)f=-1;c=getchar();} while(c>=‘0‘&&c<=‘9‘){x=x*10+c-‘0‘;c=getchar();} return x*f;}int n,a;int main(){ //freopen("in","r",stdin); while(scanf("%d",&n)!=EOF){ int sg=0,flag=0; for(int i=1;i<=n;i++) a=read(),sg^=a,flag|=a>1; if( (sg==0 && !flag) || (sg!=0 && flag) ) puts("Yes"); else puts("No"); }}
HDU Be the Winner [Anti-SG]
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。