BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
2024-10-21 07:27:50
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 3134 Solved: 2003
[Submit][Status][Discuss]
Description
小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取
的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一
粒石子的人算输。小约翰相当固执,他坚持认为先取的人有很大的优势,所以他总是先取石子,而他的哥哥就聪明
多了,他从来没有在游戏中犯过错误。小约翰一怒之前请你来做他的参谋。自然,你应该先写一个程序,预测一下
谁将获得游戏的胜利。
Input
本题的输入由多组数据组成第一行包括一个整数T,表示输入总共有T组数据(T≤500)。每组数据的第一行包
括一个整数N(N≤50),表示共有N堆石子,接下来有N个不超过5000的整数,分别表示每堆石子的数目。
Output
每组数据的输出占一行,每行输出一个单词。如果约翰能赢得比赛,则输出“John”,否则输出“Brother”
,请注意单词的大小写。
Sample Input
2
3
3 5 1
1
1
3
3 5 1
1
1
Sample Output
John
Brother
Brother
HINT
裸的Anti-Nim游戏
直接上定理
先手必胜的条件
所有堆的石子数都为1且游戏的SG值为0
有些堆的石子数大于1且游戏的SG值不为0
#include<cstdio>
#include<queue>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=1e6+,INF=1e9+;
inline char nc()
{
static char buf[MAXN],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,,MAXN,stdin),p1==p2)?EOF:*p1++;
}
inline int read()
{
char c=nc();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=nc();}
while(c>=''&&c<=''){x=x*+c-'';c=nc();}
return x*f;
}
int a[MAXN];
main()
{
#ifdef WIN32
freopen("a.in","r",stdin);
#else
#endif
int QWQ=read();
while(QWQ--)
{
int N=read(),one=,allone=,ans=;
for(int i=;i<=N;i++)
{
a[i]=read();
if(a[i]!=) allone=;
if(a[i]>) one=;
ans=ans^a[i];
}
if( (ans==&&allone) || (ans!=&&one) ) printf("John\n");
else printf("Brother\n"); }
return ;
}
最新文章
- JS代码和OC代码的相互调用
- PHP数组处理函数的使用array_map(三)
- web.xml中/与/*的区别
- IOS开发中--点击imageView上的Button没有任何反应
- 向左对齐的Gallery
- linux中cat、more、less命令区别详解
- cocos2d-x 如何保持屏幕常亮
- [转载]MVC3缓存:使用页面缓存
- javascript小知识1 this的用法
- swift 手势之UIPanGestureRecognizer
- [ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器
- angular-指令
- .net reactor使用教程(一)——界面各功能说明(转)
- piwik获取访客头像,自定义显示访问者头像(URL)和描述(标题和替代)
- C++ 设置透明背景图片
- Spring Environment(一)API 介绍
- 在线团队协作工具+在线UML工具
- HDU1281(KB10-D 二分图最大匹配)
- Javascript原型继承原理
- PAT 团体程序设计天梯赛 L1-046 整除光棍(模拟除法)
热门文章
- ubuntu在终端下复制粘贴的2种方法
- Mybatis Cause: java.lang.ClassNotFoundException: Cannot find class:
- H5拖动实现代码
- dedecms中arclist标签做分页以及分页点击模块样式错乱问题
- [P4721] 分治 FFT
- 从面试连跪到收割offer,回顾我的春招面试历程(研发岗位)
- 古典音乐 (java基础 继承)
- https下 http的会被阻塞 This request has been blocked; the content must be served over HTTPS.
- go使用context包避免goroutine泄露问题
- MySQL备份mydumper的原理【转】