这个题目是一个典型的Anti_Sg。我也不知道为什么这么叫,呵呵,反正大家都这么叫,而且我也是听别人说,看别人的日志自己才知道的。

题目的意思是给你不同颜色的石子,每次可以去一种颜色的石子若干个(至少为1),取完最后一颗石子的人获胜。

由于对于同一种颜色的石子来说,可取的数量是任意的,所以在这个题目里面一个数所对应的SG函数值就是本身。

首先我们定义一个数k为当前每一堆石子数量的异或值。

对于必胜策略,有两种可能的情况。

一。初始状态下,所有的石子堆中石子的个数全为1,且堆数为偶数。

二。初始状态下,石子堆中石子的个数不全为1,且k不为0。

对于第一种状态是显然的。下面来讨论一下第二种状态吧。

初始状态下,因为k!=0,那么先手的人总可以在某一堆中取出一定的数量(根据异或的性质,这是一定存在的哦,写成二进制自己理解一下吧),使得k=0,这样后手的人无论怎么取,取后的结果一定不为0。

每次取完的效果都是先手的人使得k由非零变零(也包括最后一次),后手的人有零变非零。所以先手必胜。

到这里题目瞬间变水了。 上代码:

 #include <iostream>
#include <cstdio>
using namespace std; int main()
{
int n,t,k,ans,tot;
scanf("%d",&t);
while (t--)
{
tot=ans=;
scanf("%d",&n);
while (n--)
{
scanf("%d",&k);
ans^=k;
tot+=k>;
}
if (tot)
{
if (ans) puts("John"); else puts("Brother");
}
else if (ans) puts("Brother"); else puts("John");
}
return ;
}

ZOJ3113_John的更多相关文章

随机推荐

  1. 20155229 2016-2017-2 《Java程序设计》第三周学习总结

    20155229 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 第四章 BigDecimal提供有plus().substract().multiply() ...

  2. 2017-2018-1 20155321《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155321<信息安全技术>实验二--Windows口令破解 实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对管理 ...

  3. # 2017-2018-1 20155336《信息安全技术》实验二——Windows口令破解

    2017-2018-1 20155336<信息安全技术>实验二——Windows口令破解 实验原理 口令破解方法 口令破解主要有两种方法:字典破解和暴力破解. 字典破解是指通过破解者对管理 ...

  4. 成都Uber优步司机奖励政策(4月10日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. Siki_Unity_2-4_UGUI_Unity5.1 UI 案例学习

    Unity 2-4 UGUI Unity5.1 UI 案例学习 任务1-1:UGUI简介 什么是GUI: 游戏的开始菜单 RPG游戏的菜单栏.侧边栏和功能栏(比如背包系统.任务列表等) 设计用来控制移 ...

  6. Saving James Bond - Easy Version (MOOC)

    06-图2 Saving James Bond - Easy Version (25 分) This time let us consider the situation in the movie & ...

  7. 高可用Kubernetes集群-7. 部署kube-controller-manager

    九.部署kube-controller-manager kube-controller-manager是Kube-Master相关的3个服务之一,是有状态的服务,会修改集群的状态信息. 如果多个mas ...

  8. 算法笔记(c++)--c++中碰到的一些用法

    算法笔记(c++)--c++中碰到的一些用法 toupper(xxx)可以变成大写; tolower(xx)小写 isalpha(xxx)判断是不是字母 isalnum(xx)判断是不是数字 abs( ...

  9. 基于kcp,consul的service mesh实现

    名字kmesh 技术:proxy,kcp,consul proxy proxy分为前端和后端 前端代理服务层,包括外部的service 后端实现负债均衡 kcp kcp 基于udp,能够实现快速的传输 ...

  10. 关于Amazon.com Seller 网络以及IP地址更换 官方回答

    Greetings from Amazon Seller Support, I understand your concern that there will be a change of IP ad ...