BZOJ 1022 小约翰的游戏 (Anti-Nim游戏)

题解:注意题目中规定取到最后一粒石子的人算输,所以是Anti-Nim游戏,胜负判断为:

先手必胜:

  1.所有堆的石子数都为1且游戏的SG值为0;

  2.有些堆的石子数大于1且游戏的SG值不为0。

#include <cstdio>
int main(){
    int t,n,s,x,tmp;
    scanf("%d",&t);
    while(t--){
        scanf("%d",&n);
        for(s=tmp=0;n--;)scanf("%d",&x),s^=x,tmp|=(x>1);
        puts((s>0)^tmp?"Brother":"John");
    }
    return 0;
}
posted @ 2014-07-17 09:23  forever97  阅读(204)  评论(0编辑  收藏