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

Sol

反nim游戏裸题,证明和题解网上一大把。

我太懒了qwq。

Code

#include <cstdio>
int T,n,ok,ans,x,m;
int main()
{for(scanf("%d",&T);T--;ok=ans=0){for(scanf("%d",&n),m=n;n--;) scanf("%d",&x),ans^=x,ok+=(x>1); if(!ok) puts(m%2?"Brother":"John");else puts(ans?"John":"Brother");}
}

转载于:https://www.cnblogs.com/CK6100LGEV2/p/9433736.html

【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论相关推荐

  1. BZOJ1022:[SHOI2008]小约翰的游戏John(博弈论)

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

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

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

  3. BZOJ1022 [SHOI2008]小约翰的游戏John

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

  4. [bzoj1022] [SHOI2008]小约翰的游戏John

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

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

    题目链接 题目大意:anti-nim游戏,定义取最后一枚石子的人输. 大概在IOI2009贾志豪的论文上有一道例题吧- 然而这是08年的题,默默流泪- 如果全部都是11的话,直接判断堆数的奇偶性即可. ...

  6. [2018.12.26]BZOJ1022 [SHOI2008]小约翰的游戏John

    发现此题是Anti-Nim游戏. 实在太模板了,以至于我不必再写一次. 其实就是懒 之前接触博弈论比较少,以至于这是第一次接触此类问题. code: #include<bits/stdc++.h ...

  7. bzoj1022: [SHOI2008]小约翰的游戏John 博弈

    裸的Anti-Nim(其实刚学会我会乱说?),结论是:当且仅当每堆石子为1且游戏SG值为0,或有些堆的石子数大于1且游戏的SG值不为0时,先手必胜. 特殊情况不难证明,当SG值不为0时,若还有至少两堆 ...

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

    anti-Nim游戏 题目传送门 这道题和Nim游戏很像,但是条件反了过来:谁取走最后一个石子谁就输.于是就叫反Nim游戏... 当所有堆的石子数均为1且有偶数堆/至少有1堆石子数>1且石子数的 ...

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

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

  10. BZOJ1022 [SHOI2008]小约翰的游戏John(Anti-Nim游戏)

    [题解] 首先,还是令SG[x]=x 结论: 先手胜有两种情况: 1. Nim和(SG[i]异或和)==0,且每堆石子数量都为1 2. Nim和!=0,且至少有一堆石子数量大于1 简单证明(YY... ...

最新文章

  1. MySQL如何判别InnoDB表是独立表空间还是共享表空间
  2. SAP WM中阶存储类型里的Full stk rmvl 字段和Return Storage type字段
  3. Leet Code OJ 219. Contains Duplicate II [Difficulty: Easy]
  4. 在远程 CSM 课程中体验线上工作坊
  5. 6 计算机组成原理第五章 中央处理器 CPU功能和结构 指令执行过程
  6. 电脑安装python后开不了机_ubuntu 安装python3.6后,terminal终端打不开问题
  7. [20150204]关于位图索引4.txt
  8. python anacoda更换国内镜像源和常用软件包管理操作详细讲解(已爬坑)
  9. EMQ X开源版使用
  10. 国内主流虚拟化厂商之间比较
  11. Candence学习篇(5)使用Padstack Editor制作贴片焊盘和通孔焊盘
  12. MATLAB有限元二维编程(三角单元)
  13. 花-寒-进-13-A-丛林之路
  14. 移动测试基础 Android 应用测试总结
  15. 凤凰刷机 教你S40刷机,原来刷机和破权不一样!!
  16. Pycharm下载地址、汉化方法与常用快捷键
  17. MySQL DQL查询
  18. 扩展:hive插入数据到ES
  19. OpenGL超级宝典(第7版)笔记13 前三章实例 下个五子棋 (上)
  20. C语言康威生命游戏,【2020存档】康威生命游戏(CGoL)研究进展

热门文章

  1. 2021-04-03
  2. linux编写设备驱动 编译成ko文件 重新编译内核,Linux内核驱动将多个C文件编译成一个ko文件的方法——每一个C文件中都有module_init与module_exit...
  3. java 线程池 hash_java线程池实例 - Hashsound的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. php之获取ip(网站地址)
  5. 二十五、JAVA多线程(五、线程生命周期)
  6. 十一、Shell脚本流程控制语句
  7. 阶段3 2.Spring_03.Spring的 IOC 和 DI_1 ioc的概念和作用
  8. Winform 按钮权限拦截AOP
  9. 507 LOJ 「LibreOJ NOI Round #1」接竹竿
  10. Delphi 重启应用程序