hdoj 1907
这是一道博弈的题,准确说是尼姆博弈,只要判断各项的异或值即可。
代码
#include <stdio.h>
const int maxn = 5000;
int x[maxn];
int main()
{
int t, n, tmp;
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
int cnt = 0;
for (int i = 1; i <= n; i++)
{
scanf("%d",&x[i]);
if (x[i] == 1)
cnt++;
}
if (cnt == n)
{
if (cnt % 2)
puts("Brother");
else
puts("John");
continue;
}
tmp = x[1];
for (int i = 2; i <= n;i++)
{
tmp ^= x[i];
}
if (n == 1)
{
puts("John");
continue;
}
if (tmp)
puts("John");
else
puts("Brother");
}
return 0;
}

浙公网安备 33010602011771号