bzoj1022 [SHOI2008]小约翰的游戏John
来源:互联网 发布:exe 端口 编辑:程序博客网 时间:2024/04/27 21:55
题解:首先考虑只有1的情况,奇数个1先手必败,偶数个1先手必胜;
若有大于1的堆,所有堆的xor之和为0,则先手必败;否则先手必胜。xor之和为0,那么后手的策略为 先手取多少,后手取多少;最后就会剩下两种状态(后手先取):
1. 很多堆1和一堆大于1的堆
2. 两个大于1的堆
对于第一种情况,若1的个数为奇数,那么后手取完大于1的堆,剩下奇数个1的堆,后手必胜;若1的个数为偶数,则后手将大于1的堆取成1,则剩下奇数个1的堆,后手必胜。
对于第二种情况,最后必然会变成1和1个大于1的堆,此时后手取完大于1的堆,后手必胜
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm> using namespace std; int n,xorsum;int main(){ int Case;scanf("%d",&Case); while (Case--){ int Flag=0; scanf("%d",&n);xorsum=0; for (int i=0;i<n;i++){ int x;scanf("%d",&x); if (x>1)Flag=1; xorsum^=x; } if (!Flag){ if (n%2)puts("Brother");else puts("John"); }else{ if (xorsum)puts("John");else puts("Brother"); } } return 0;}
0 0
- bzoj1022[SHOI2008]小约翰的游戏John
- bzoj1022 [SHOI2008]小约翰的游戏John
- bzoj1022: [SHOI2008]小约翰的游戏John
- bzoj1022: [SHOI2008]小约翰的游戏John
- bzoj1022 [SHOI2008]小约翰的游戏John
- BZOJ1022: [SHOI2008]小约翰的游戏John
- [BZOJ1022][SHOI2008]小约翰的游戏John-反NIM游戏
- bzoj1022: [SHOI2008]小约翰的游戏John 博弈
- 【bzoj1022】【SHOI2008】【小约翰的游戏John】【博弈论】
- 【BZOJ1022】[SHOI2008]小约翰的游戏John【Anti-Nim】
- 【bzoj1022】[SHOI2008]小约翰的游戏John 博弈论
- 【博弈论】bzoj1022[SHOI2008]小约翰的游戏John
- 12.7 bzoj1022 [SHOI2008]小约翰的游戏John
- 【Anti-Nim】BZOJ1022(SHOI2008)[小约翰的游戏John]题解
- BZOJ1022 [SHOI2008]小约翰的游戏John 【博弈论】
- BZOJ1022 [SHOI2008]小约翰的游戏John(Anti-Nim游戏)
- [BZOJ1022][SHOI2008]小约翰的游戏John(博弈Anti-Nim游戏)
- BZOJ1022(SHOI2008)[小约翰的游戏John]--博弈论(反Nim游戏)
- 对于存储过程中传入参数是否设置默认值的心得
- CCF计算机软件能力认证试题练习-数列分段(Java参考答案学习记录)
- iOS 通过定位获取常驻后台
- matlab 函数集锦
- 完整的拆分nginx访问日志
- bzoj1022 [SHOI2008]小约翰的游戏John
- ArrayList 、LinkedList和Vector比较
- FFmpeg中java调用(3)
- NPAPI插件开发
- Android设置控件的透明度(半透明效果)
- c语言-指针 const解析
- 部署Heoku
- JSP+Servlet实现文件上传
- mybatis多次查询缓存问题