我怎么什么都不会啊\(QAQ\)博弈论怎么和期望一样玄学啊\(QAQ\)

我们分几种情况讨论:

\(Case1\):只有一堆且为1,那么后手胜利

\(Case2\):每一堆都是1,那么只需要判断奇偶性,奇数则先手败,偶数则后手败

\(Case3\):只有一堆不是1,其余堆都是1,那么可以根据就行,先手可以选择是拿完或是那得只剩一个

\(Case4\):一般情况,思考怎么转化成\(Case\ 1-3\)

现在题意是说:给定K堆,先手想要自己去到最后一堆他就会胜利\((Case3)\),这不就变成\(nim\)游戏了吗?

于是只需要把每一堆的权值异或起来即可

\(Code:\)

#include<bits/stdc++.h>
using namespace std;
int read() {
int x = 0, f = 1; char c = getchar();
while(c < '0' || c > '9') { if(c == '-') f = -1; c = getchar();}
while(c >= '0' && c <= '9') x = x * 10 + c - 48, c = getchar();
return x * f;
}
int main() {
int T = read();
while(T --) {
int n = read(), x, ans = 0, sum = 0;
for(int i = 1; i <= n; ++ i) x = read(), ans ^= x, sum += x;
if(sum == n) puts(n & 1 ? "Brother" : "John");
else puts(ans ? "John" : "Brother");
}
return 0;
}

最新文章

  1. 开源免费的HTML5游戏引擎
  2. ios 中scrollview上面嵌套tableView,左右滑动出现数据多次刷新的问题
  3. 【转】Win7 64bit Oracle 11g 使用PL/SQL Developer 连接时提示“SQL*Net not properly installed”
  4. InvokeRequired和Invoke
  5. 自己实现字符串操作函数strlen(),strcat(),strcpy(),strcmp()
  6. SqlServer知识总结
  7. hdu1501 动态规划
  8. Android学习Service中遇到的问题
  9. S3C6410嵌入式应用平台构建(三)
  10. SOA,不看你永远不知道的事
  11. 一天一个类,一点也不累 之 LinkedList
  12. Exchange Server 2013传输规则之全新附件限制
  13. WebStorm中Node.js项目配置教程(1)——创建项目
  14. Spring 级联属性
  15. L1-Day15
  16. s9.16作业,员工信息表
  17. 《Gradle权威指南》--Android Gradle多渠道构建
  18. CEF3编译添加mp4支持(对应CefSharp63.0.3),chromium63(3239),附release下载
  19. [WPF 基础知识系列] —— 绑定中的数据校验Vaildation
  20. Android 隐藏虚拟按键,并且全屏

热门文章

  1. Hive 系列(三)—— Hive CLI 和 Beeline 命令行的基本使用
  2. python class 中__next__用法
  3. Laravel 5.5 发布,ThinkSNS+ 升级及状况分享
  4. iOS 12中获取WiFi的SSID
  5. 又一个秘密如何让浏览器访问最新的js,css等外部引用
  6. js对象及函数(四)
  7. linux ftp虚拟用户的创建
  8. selenium 滚动屏幕操作+上传文件
  9. liunx 安装nc/netcat centos安装netcat
  10. php后端模式,php-fpm以及php-cgi, fast-cgi,以及与nginx的关系