bzoj 1022 小约翰的游戏John
2024-08-30 11:34:34
题目大意:
n堆石子,两个人轮流取石子,每个人取的时候,可以随意选择一堆石子
在这堆石子中取走任意多的石子,但不能一粒石子也不取,取到最后一粒石子的人算输
思路:
首先当每堆石子数都为1时,偶数为先手必胜,奇数为先手必败
当有一堆石子数不为1时,先手可以使堆变为奇数个1的堆,即先手必胜
而如果有很多堆石子数不为1,如果异或和不为0,则先手可以把异或和变为0 变为必胜态
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<queue>
#include<map>
#include<vector>
#define ll long long
#define inf 2147483611
#define MAXN 1010
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-;ch=getchar();}
while(isdigit(ch)) {x=x*+ch-'';ch=getchar();}
return x*f;
}
int T,n;
int main()
{
T=read();int sum,a;bool f;
while(T--)
{
n=read(),sum=f=;
for(int i=;i<=n;i++)
{
a=read();
sum^=a;
if(a!=) f=;
}
if((!f&&!sum)||(sum&&f)) puts("John");
else puts("Brother");
}
}
最新文章
- supermpa配置遇到的问题
- Code HighLight
- [Unity3D]脚本生命周期学习
- Office 365 – SharePoint 2013 Online 中添加域和域名
- WeakReference(弱引用)
- 空格和TAB键混用错误:IndentationError: unindent does not match any outer indentation level
- PHP批量替换MySql数据库中的数据内容(替换MySql数据库内容源码)
- AJAX中的dataType(数据格式)-text、json
- 【每周一译】愚蠢的指标:Java中使用最多的关键字
- Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。
- Select * 一定不走索引是否正确?
- 【Xilinx-Petalinux学习】-00-开始
- 源码怎么找之rest_framework的用户认证
- XMLTABLE
- Windows下建立FTP服务器站点
- 【原创】大叔经验分享(43)logstash设置jdbc_default_timezone后报错
- ForkJoinPool
- STL中set的使用方法
- 《Java编程思想第四版》附录 B 对比 C++和 Java
- python,异常处理