BZOJ1022 [SHOI2008]小约翰的游戏John 【博弈论】
2024-09-04 17:58:52
1022: [SHOI2008]小约翰的游戏John
Time Limit: 1 Sec Memory Limit: 162 MB
Submit: 3014 Solved: 1914
[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
见论文:
算法合集之《组合游戏略述——浅谈SG游戏的若干拓展及变形》
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long int
#define REP(i,n) for (int i = 1; i <= (n); i++)
#define fo(i,x,y) for (int i = (x); i <= (y); i++)
#define Redge(u) for (int k = head[u]; k != -1; k = edge[k].next)
using namespace std;
const int maxn = 100005,maxm = 100005,INF = 1000000000;
inline int read(){
int out = 0,flag = 1;char c = getchar();
while (c < 48 || c > 57) {if (c == '-') flag = -1; c = getchar();}
while (c >= 48 && c <= 57) {out = out * 10 + c - 48; c = getchar();}
return out * flag;
}
int main()
{
int T = read(),N,flag,x,n;
while (T--){
N = read(); flag = 1; n = 0;
REP(i,N){
x = read();
if (x != 1) flag = 0;
n ^= x;
}
if (flag && (N & 1)) puts("Brother");
else if (flag) puts("John");
else if (n) puts("John");
else puts("Brother");
}
return 0;
}
最新文章
- 用Github pages搭建自己制作的网页,方法最简单,适用于新手
- RemoteIE 开发者可跨平台使用IE测试网页
- Ext.js添加子组件
- Maven排除项目中同名不同版本的jar
- Java IO之一读取文件
- 周赛-KIDx&#39;s Pagination 分类: 比赛 2015-08-02 08:23 7人阅读 评论(0) 收藏
- C++,利用链式栈实现括号匹配,界面友好,操作方便,运行流畅
- Yii集成smarty说明
- MVC4 网站发布(整理 + 部分转载 + 部分问题收集和解决方案)
- const形参和实参
- deep learning framework(不同的深度学习框架)
- Linux usb子系统(二):USB设备驱动usb-skeleton.c
- BZOJ 1146: [CTSC2008]网络管理Network( 树链剖分 + 树状数组套主席树 )
- 看完这篇文章才对【GIT】有了大彻大悟的认识
- C++中的动态链接库
- IDEA热部署(三)---jetty插件调试(转)
- WebAPI 实现前后端分离
- beef + msf 实现内网渗透
- [LightOJ 1287] Where to Run
- 系统限制和选项limit(一)