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
Sample Output
John

Brother
解题方法: Nim 博弈问题。我们分两种情况,如果全是 1 的话,如果是奇数个则是 Brother 否则是 John。如果不全是 1的话,记 p 为所有石子数量的 xor 和,若 p 为 0 则是 Brother 否则是 John。详细推导可以参见:这里写链接内容

代码如下:

#include <bits/stdc++.h>
using namespace std;
int main(){int T;scanf("%d", &T);while(T--){int n, x, sg = 0;bool flag = 1;scanf("%d", &n);for(int i = 0; i < n; i++){scanf("%d", &x);sg ^= x;if(x != 1) flag = 0;}if(!flag&&sg!=0 || flag&&!sg) puts("John");else puts("Brother");}return 0;
}

BZOJ 小约翰的游戏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. 1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】

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

  6. BZOJ1022 [SHOI2008]小约翰的游戏John 【博弈论】

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

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

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

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

    $ \color{#0066ff}{ 题目描述 }$ 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任 ...

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

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

最新文章

  1. javascript动画系列第一篇——模拟拖拽
  2. 模拟Web 服务器磁盘满故障深入解析
  3. cnblogs-5个必须掌握的maven命令
  4. JS实现失去焦点判断input内容是否大于0
  5. 电脑屏幕保护怎么取消_怎么监控员工电脑?老板如何知道员工上班在干什么?...
  6. 简易的素描图片转换流程与实现
  7. ArcGIS for Desktop入门教程_第六章_用ArcMap制作地图 - ArcGIS知乎-新一代ArcGIS问答社区...
  8. FPGA信号处理系列文章——用matlab理解CIC滤波器的原理
  9. 常用的默认端口号(HTTP\HTTPS\FTP)
  10. 轻松绘制图像图形!且看Aspose新产品GDI +图形处理API-Aspose.Drawing如何操作!
  11. 即时通讯开发之开源工程WebRTC原理
  12. ccf二十四点Java_CCF--二十四点 - osc_kel5e0sw的个人空间 - OSCHINA - 中文开源技术交流社区...
  13. 校招总结--建议全文背诵
  14. [艾兰岛]制作传送门之传送技能——kura酱长期更新
  15. orz正在流行的符号---失意体前躯
  16. 最新青龙拉库命令及监控变量教学
  17. 如何完成上传图片到腾讯云
  18. 服务器接显示器显示不支援,Win10专业版显示器输入不支援怎么办?如何解决?...
  19. 光影在线电影网站制作笔记
  20. 关于用盐去黑头的亲身经历~ - 生活至上,美容至尚!

热门文章

  1. 通俗易懂理解几何光学(五)光线的光路计算及像差理论
  2. python 利用脚本命令压缩加密文件并删除源文件
  3. DirectX中的粒子系统
  4. java使用aspose将word,excel,ppt转pdf
  5. jsp:forward标签介绍
  6. npm install 连接不上github解决办法
  7. 设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。要求如下:
  8. win10无法连接到win7系统更新服务器,win10系统提示无法连接到windows服务的解决方法...
  9. 软件测试简历上的职业技能怎么写,测试工程师岗位个人简历个人技能范文
  10. UVA11134 传说中的车 Fabled Rooks