$ \color{#0066ff}{ 题目描述 }$

小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一 粒石子的人算输。小约翰相当固执,他坚持认为先取的人有很大的优势,所以他总是先取石子,而他的哥哥就聪明 多了,他从来没有在游戏中犯过错误。小约翰一怒之前请你来做他的参谋。自然,你应该先写一个程序,预测一下 谁将获得游戏的胜利。

\(\color{#0066ff}{输入格式}\)

本题的输入由多组数据组成第一行包括一个整数T,表示输入总共有T组数据(T≤500)。每组数据的第一行包 括一个整数N(N≤50),表示共有N堆石子,接下来有N个不超过5000的整数,分别表示每堆石子的数目。

\(\color{#0066ff}{输出格式}\)

每组数据的输出占一行,每行输出一个单词。如果约翰能赢得比赛,则输出“John”,否则输出“Brother” ,请注意单词的大小写。

\(\color{#0066ff}{输入样例}\)

2
3
3 5 1
1
1

\(\color{#0066ff}{输出样例}\)

John
Brother

\(\color{#0066ff}{数据范围与提示}\)

none

\(\color{#0066ff}{题解}\)

Anti-Nim板子,直接上结论

1.每一堆石子只有一个时 且异或和为0

2.存在至少一堆石子多于一个时 且异或和不为0

此时满足上述一个条件 先手必胜

#include<bits/stdc++.h>
#define LL long long
LL in() {char ch; LL x = 0, f = 1;while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));return x * f;
}
int main() {for(int T = in(); T --> 0;) {int n = in(), flag = 0, x, tot = 0;for(int i = 1; i <= n; i++) {x = in();tot ^= x;if(x != 1) flag = 1;}printf(((!flag && !tot) || (flag && tot))? "John\n" : "Brother\n");}return 0;
}

转载于:https://www.cnblogs.com/olinr/p/10464398.html

bzoj 1022: [SHOI2008]小约翰的游戏John相关推荐

  1. BZOJ 1022 [SHOI2008]小约翰的游戏John

    title: 'BZOJ 1022 [SHOI2008]小约翰的游戏John' categories: BZOJ date: 2016-3-8 21:27:00 tags: [SG函数,博弈论] De ...

  2. BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1475  Solved: 932 [Submit ...

  3. bzoj 1022: [SHOI2008]小约翰的游戏John anti_nim游戏

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1189  Solved: 734 [Submit ...

  4. bzoj 1022: [SHOI2008]小约翰的游戏John(anti-nim)

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2375  Solved: 1497 [Submi ...

  5. bzoj 1022: [SHOI2008]小约翰的游戏John(反nim游戏)

    Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...

  6. BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论

    题目大意:反Nim游戏,即取走最后一个的人输 首先状态1:如果所有的堆都是1,那么堆数为偶先手必胜,否则先手必败 然后状态2:如果有两个堆数量相同且不为1,那么后手拥有控场能力,即: 若先手拿走一堆, ...

  7. 1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2709  Solved: 1726 [Submi ...

  8. 【bzoj 1022】 小约翰的游戏John 【SHOI2008】

    Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...

  9. 1022: [SHOI2008]小约翰的游戏John

    Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...

最新文章

  1. 康力优蓝发布新品:让AI教育从概念变成现实!
  2. 《走遍中国》珍藏版(三)
  3. QT4.8.5 显示中文
  4. 【Elasticsearch】es 集群健康值 红色 red 分片 未分配
  5. linux脚本程序是什么意思,什么是shell脚本编程?
  6. SSL 重点SSL会话步骤
  7. 阶段3 1.Mybatis_12.Mybatis注解开发_3 mybatis注解开发保存和更新功能
  8. Vmware里安装Ubuntu时由于分辨率问题,界面显示不全解决办法
  9. 综合安防管理系统平台服务器,DSMS智慧安防综合管理平台系统应用方案
  10. Qt中通过Qpixmap设置图片透明度
  11. STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)
  12. 宇宙机器人超级计算机,宇宙机器人无线控制器使用指南白金攻略
  13. 【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果
  14. Cesium基础知识-创建3D地球
  15. 【01 dp】A005_LC_生成数组(暴搜 / 记忆化 / dp)
  16. mathpix无法免费?识别公式终极版,看着这篇就够了
  17. Data Abort产生的原因
  18. S - 歌德巴赫猜想
  19. 用linux系统做数字钟,大强学易之易语言实例:简单的易语言桌面电子时钟
  20. window 获取文件大小

热门文章

  1. mybatis lazyload
  2. “悟空遥控”商业模式拆解及投资建议
  3. Maya获取材质ShadingEngine信息
  4. TED演讲:404找不到页面的故事
  5. 操作系统习题(有一个具有两道作业的批处理系统)
  6. MySQL 重置 root 密码以及修改密码时报错password字段不存在
  7. 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题
  8. 2022广东省安全员B证第四批(项目负责人)上岗证题目及在线模拟考试
  9. 为什么和平精英一直显示无法连接到服务器,和平精英无法连接到服务器解决办法...
  10. 【统计学习方法】统计学习及监督学习概论