POJ3480John博弈
来源:互联网 发布:征途 巨人网络 编辑:程序博客网 时间:2024/06/05 15:16
易水人去,明月如霜。
Description
Little John is playing very funny game with his younger brother. There is one big box filled with M&Ms of different colors. At first John has to eat several M&Ms of the same color. Then his opponent has to make a turn. And so on. Please note that each player has to eat at least one M&M during his turn. If John (or his brother) will eat the last M&M from the box he will be considered as a looser and he will have to buy a new candy box.
Both of players are using optimal game strategy. John starts first always. You will be given information about M&Ms and your task is to determine a winner of such a beautiful game.
Input
The first line of input will contain a single integer T – the number of test cases. NextT pairs of lines will describe tests in a following format. The first line of each test will contain an integerN – the amount of different M&M colors in a box. Next line will containN integers Ai, separated by spaces – amount of M&Ms ofi-th color.
Constraints:
1 <= T <= 474,
1 <= N <= 47,
1 <= Ai <= 4747
Output
Output T lines each of them containing information about game winner. Print “John” if John will win the game or “Brother” in other case.
Sample Input
233 5 111
Sample Output
JohnBrother题意:在一般的nim博弈上稍作修改,就是最后取完的输,其他一样;
代码:
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n,m,x;int main(){ scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&m); bool flag=0;int sg=0; for(int i=1;i<=m;i++) { scanf("%d",&x); sg^=x; if(x>1)flag=1; } if(!flag&&!sg)puts("John"); else if(flag&&sg)puts("John"); else puts("Brother"); } return 0;}
- POJ3480John博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- 博弈
- JavaScript生成指定范围的随机数和随机数序列
- 题解:Perfect Squares
- 软件光栅化渲染器(四)
- 【POJ 1988 Cube Stacking】+ 并查集
- PHP基础(1)---认识PHP
- POJ3480John博弈
- 蓝桥杯 基础练习 查找整数 JAVA
- 请求重定向和请求转发的区别
- Android Service 的生命周期
- H5项目常见问题汇总及解决方案
- 树莓派开机自启动
- L
- PostgreSQL on Linux 最佳部署手册
- 《C程序设计语言》读书笔记(六)——结构