bzoj 1022: [SHOI2008]小约翰的游戏John
Posted lxy8584099
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj 1022: [SHOI2008]小约翰的游戏John相关的知识,希望对你有一定的参考价值。
博弈论
/************************************************************** Problem: 1022 User: lxy8584099 Language: C++ Result: Accepted Time:44 ms Memory:820 kb ****************************************************************/ /* 1 必输 2~n 必赢 SG[i]=[i] 如果异或起来不为0 并且存在大于1的某堆石头 则John赢 如果异或起来为0 并且不存在大于1的数 则john赢 (没考虑到这一点 剩下的就是brother赢 */ #include<cstdio> using namespace std; int main() { int T;scanf("%d",&T); while(T--) { int n,ans=0,bj=0;scanf("%d",&n); for(int i=1,x;i<=n;i++) { scanf("%d",&x);ans^=x; if(x>1) bj=1; } if(ans&&bj) puts("John"); else if(!ans&&!bj) puts("John"); else puts("Brother"); } return 0; }
以上是关于bzoj 1022: [SHOI2008]小约翰的游戏John的主要内容,如果未能解决你的问题,请参考以下文章
[Bzoj1022][SHOI2008]小约翰的游戏John(博弈论)
bzoj 1022: [SHOI2008]小约翰的游戏John
bzoj 1022 [SHOI2008]小约翰的游戏John - anti Nim