John
Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2659 Accepted Submission(s): 1462
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.
Constraints:
1 <= T <= 474,
1 <= N <= 47,
1 <= Ai <= 4747
規定吃完最後一顆的就輸了,anti_sg,我也不是很懂,就是當所有堆都是1的時候特判,然後有一堆大於1的時候就按照nim遊戲來做
博弈實在弱爆了!被博弈各種爆菊!
#include<cstdio>
#include<vector>
#include<utility>
#include<cstring>
#include<iostream>
#include<algorithm>
#define LL long long
#define MM 100010
using namespace std;
int n;
int main() {
int T;
//freopen("D:\\o.txt", "r", stdin);
scanf("%d", &T);
while (T--)
{
int sum = 0, num = 0;
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
int x;
scanf("%d", &x);
if (x > 1)num++;
sum ^= x;
}
if (num == 0)
{
if (n % 2 == 1)puts("Brother");
else puts("John");
}
else
{
if (sum != 0)puts("John");
else puts("Brother");
}
}
return 0;
}