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




发布了236 篇原创文章 · 获赞 577 · 访问量 52万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 猿与汪的秘密 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览