xindoo is
always here

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;
}


打赏
未经允许不得转载:XINDOO » hdoj 1907
分享到: 更多 (0)

评论 抢沙发

xindoo

联系我联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏