bzoj 1022: [SHOI2008]小约翰的游戏John
$ \color{#0066ff}{ 题目描述 }$
小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取,我们规定取到最后一 粒石子的人算输。小约翰相当固执,他坚持认为先取的人有很大的优势,所以他总是先取石子,而他的哥哥就聪明 多了,他从来没有在游戏中犯过错误。小约翰一怒之前请你来做他的参谋。自然,你应该先写一个程序,预测一下 谁将获得游戏的胜利。
\(\color{#0066ff}{输入格式}\)
本题的输入由多组数据组成第一行包括一个整数T,表示输入总共有T组数据(T≤500)。每组数据的第一行包 括一个整数N(N≤50),表示共有N堆石子,接下来有N个不超过5000的整数,分别表示每堆石子的数目。
\(\color{#0066ff}{输出格式}\)
每组数据的输出占一行,每行输出一个单词。如果约翰能赢得比赛,则输出“John”,否则输出“Brother” ,请注意单词的大小写。
\(\color{#0066ff}{输入样例}\)
2
3
3 5 1
1
1
\(\color{#0066ff}{输出样例}\)
John
Brother
\(\color{#0066ff}{数据范围与提示}\)
none
\(\color{#0066ff}{题解}\)
Anti-Nim板子,直接上结论
1.每一堆石子只有一个时 且异或和为0
2.存在至少一堆石子多于一个时 且异或和不为0
此时满足上述一个条件 先手必胜
#include<bits/stdc++.h>
#define LL long long
LL in() {char ch; LL x = 0, f = 1;while(!isdigit(ch = getchar()))(ch == '-') && (f = -f);for(x = ch ^ 48; isdigit(ch = getchar()); x = (x << 1) + (x << 3) + (ch ^ 48));return x * f;
}
int main() {for(int T = in(); T --> 0;) {int n = in(), flag = 0, x, tot = 0;for(int i = 1; i <= n; i++) {x = in();tot ^= x;if(x != 1) flag = 1;}printf(((!flag && !tot) || (flag && tot))? "John\n" : "Brother\n");}return 0;
}
转载于:https://www.cnblogs.com/olinr/p/10464398.html
bzoj 1022: [SHOI2008]小约翰的游戏John相关推荐
- BZOJ 1022 [SHOI2008]小约翰的游戏John
title: 'BZOJ 1022 [SHOI2008]小约翰的游戏John' categories: BZOJ date: 2016-3-8 21:27:00 tags: [SG函数,博弈论] De ...
- BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1475 Solved: 932 [Submit ...
- bzoj 1022: [SHOI2008]小约翰的游戏John anti_nim游戏
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MB Submit: 1189 Solved: 734 [Submit ...
- bzoj 1022: [SHOI2008]小约翰的游戏John(anti-nim)
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2375 Solved: 1497 [Submi ...
- bzoj 1022: [SHOI2008]小约翰的游戏John(反nim游戏)
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...
- BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论
题目大意:反Nim游戏,即取走最后一个的人输 首先状态1:如果所有的堆都是1,那么堆数为偶先手必胜,否则先手必败 然后状态2:如果有两个堆数量相同且不为1,那么后手拥有控场能力,即: 若先手拿走一堆, ...
- 1022: [SHOI2008]小约翰的游戏John【Nim博弈,新生必做的水题】
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2709 Solved: 1726 [Submi ...
- 【bzoj 1022】 小约翰的游戏John 【SHOI2008】
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...
- 1022: [SHOI2008]小约翰的游戏John
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取 的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不 ...
最新文章
- 康力优蓝发布新品:让AI教育从概念变成现实!
- 《走遍中国》珍藏版(三)
- QT4.8.5 显示中文
- 【Elasticsearch】es 集群健康值 红色 red 分片 未分配
- linux脚本程序是什么意思,什么是shell脚本编程?
- SSL 重点SSL会话步骤
- 阶段3 1.Mybatis_12.Mybatis注解开发_3 mybatis注解开发保存和更新功能
- Vmware里安装Ubuntu时由于分辨率问题,界面显示不全解决办法
- 综合安防管理系统平台服务器,DSMS智慧安防综合管理平台系统应用方案
- Qt中通过Qpixmap设置图片透明度
- STM32项目设计:基于STM32F4的mp3、wav音乐播放器 (UCOSIII操作系统、GUI控件)
- 宇宙机器人超级计算机,宇宙机器人无线控制器使用指南白金攻略
- 【漆天编程】最牛逼的均线交叉指标,做出了EA历史数据测试器的效果
- Cesium基础知识-创建3D地球
- 【01 dp】A005_LC_生成数组(暴搜 / 记忆化 / dp)
- mathpix无法免费?识别公式终极版,看着这篇就够了
- Data Abort产生的原因
- S - 歌德巴赫猜想
- 用linux系统做数字钟,大强学易之易语言实例:简单的易语言桌面电子时钟
- window 获取文件大小
热门文章
- mybatis lazyload
- “悟空遥控”商业模式拆解及投资建议
- Maya获取材质ShadingEngine信息
- TED演讲:404找不到页面的故事
- 操作系统习题(有一个具有两道作业的批处理系统)
- MySQL 重置 root 密码以及修改密码时报错password字段不存在
- 武汉工程大学信息与计算科学专业面向对象程序设计课程设计题
- 2022广东省安全员B证第四批(项目负责人)上岗证题目及在线模拟考试
- 为什么和平精英一直显示无法连接到服务器,和平精英无法连接到服务器解决办法...
- 【统计学习方法】统计学习及监督学习概论