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; }
愿你出走半生,归来仍是少年