BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论
题目大意:反Nim游戏,即取走最后一个的人输
首先状态1:假设全部的堆都是1,那么堆数为偶先手必胜,否则先手必败
然后状态2:假设有两个堆数量同样且不为1,那么后手拥有控场能力,即:
若先手拿走一堆,那么后手能够选择将还有一堆留下1个或者全拿走,使这两堆终于仅仅剩1个或0个;
若先手将一堆拿剩一个,那么后手能够选择将还有一堆留下一个让先手拿或全拿走,使这两堆终于仅仅剩1个或0个;
若先手将一堆拿走一部分。那么后手能够将还有一堆相同拿走一部分,然后同上
状态3:若Xor!=0 那么先手能够先拿走一部分让Xor=0 然后同状态2先手必胜 否则先手必败
※鉴于本人过于沙茶,以上内容仅存在參考价值。无法证明正确性,欢迎指正
于是若全部堆全是1 Xor==0先手必胜 否则后手必胜
若有堆不是1 Xor==0后手必胜 否则先手必胜
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int n;
bool Calculate()
{
int i,x,xor_sum=0;
bool flag=1;
cin>>n;
for(i=1;i<=n;i++)
{
scanf("%d",&x);
if(x^1) flag=0;
xor_sum^=x;
}
if(flag)
return !xor_sum;
else
return xor_sum;
}
int main()
{
int T,i;
for(cin>>T;T;T--)
{
if( Calculate() )
puts("John");
else
puts("Brother");
}
}
BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论的更多相关文章
- BZOJ.1022.[SHOI2008]小约翰的游戏John(博弈论 Anti-Nim)
题目链接 Anti-Nim游戏: 先手必胜当且仅当: 1.所有堆的石子数为1,且异或和为0 2.至少有一堆石子数>1,且异或和不为0 简要证明: 对于1:若异或和为1,则有奇数堆:异或和为0,则 ...
- bzoj 1022: [SHOI2008]小约翰的游戏John anti_nim游戏
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1189 Solved: 734[Submit][ ...
- BZOJ 1022 [SHOI2008]小约翰的游戏John
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 1036[Submit] ...
- BZOJ 1022 [SHOI2008]小约翰的游戏John AntiNim游戏
1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 1475 Solved: 932[Submit][ ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John (Anti-nim)
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 3134 Solved: 2003[Submit][Status][Discuss] Descripti ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John【anti-SG】
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取 ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John [SJ定理]
传送门 $anti-nim$游戏,$SJ$定理裸题 规定所有单一游戏$sg=0$结束 先手必胜: $1.\ sg \neq 0,\ 某个单一游戏sg >1$ $2.\ sg = 0,\ 没有单一 ...
- 51nod 1069 Nim游戏 + BZOJ 1022: [SHOI2008]小约翰的游戏John(Nim游戏和Anti-Nim游戏)
首先,51nod的那道题就是最简单的尼姆博弈问题. 尼姆博弈主要就是判断奇异局势,现在我们就假设有三个石子堆,最简单的(0,n,n)就是一个奇异局势,因为无论先手怎么拿,后手总是可以在另一堆里拿走相同 ...
- bzoj 1022: [SHOI2008]小约翰的游戏John【anti-nim】
如果全是1,那么n是奇数先手必败 否则,xor和为0先手必败 证明见 https://www.cnblogs.com/Wolfycz/p/8430991.html #include<iostre ...
随机推荐
- poj 2993 Emag eht htiw Em Pleh(模拟)
题目:http://poj.org/problem?id=2993 题意:和2996反着 #include <iostream> #include<cstdio> #inclu ...
- 深入理解Java虚拟机 - 垃圾收集概述
首先需要澄清的是,垃圾收集(GC)的历史远比Java要久远,当我们意识到手动管理内存所带来的麻烦时,懒惰的天性推动先驱们寻找更为简单.易用.关键是傻瓜式的内存管理技术.GC技术起源于1960年诞生于M ...
- Css3 Media Queries移动页面的样式和图片的适配问题(转)
CSS3 Media Queries 摘自:http://www.w3cplus.com/content/css3-media-queries Media Queries直译过来就是“媒体查询”,在我 ...
- UVa 10900 (连续概率、递推) So you want to be a 2n-aire?
题意: 初始奖金为1块钱,有n个问题,连续回答对i个问题后,奖金变为2i元. 回答对每道题的概率在t~1之间均匀分布. 听到问题后有两个选择: 放弃回答,拿走已得到的奖金 回答问题: 如果回答正确,奖 ...
- ViewPager onPageChangeListener总结
今天在做项目的时候,由于要处理viewPager页面滑动的事件,所以对其进行了一个小小的研究: 首先ViewPager在处理滑动事件的时候要用到OnPageChangeListener OnPageC ...
- 将android中的sample例子到eclipse中
SDK中带有很多的例子,那么我们怎么样导入到eclipse中呢?方法很简单,如下: 1. 新建android工程,选择Create project from existing sample, 2. 选 ...
- Javscript高级
Javscript高级: 函数内部属性 arguments: arguments(实参:包含所有传入方法的参数)特殊用法: arguments中有一个属性callee,是一个指针,指向拥有这个argu ...
- 31、activity 四种工作模式
一个应用通常(不一定)对应一个任务栈,相当于有个集合,保存了这个app里所有的页面栈的规则是先进后出,"进"就相当于打开了一个页面,"出"就相当于返回时关闭一个 ...
- #pragma warning (default : n)
参考链接:http://www.cnblogs.com/JCSU/articles/1996483.html 在VC2013中编译以下win32 C++ 控制台程序,会产生2个告警warnings # ...
- KindEditor 4.1.10 (2013-11-23)首行空格不能显示在编辑器内
KindEditor版本: KindEditor 4.1.10 (2013-11-23) 一.BUG再现步骤: 1.文章前面插入二个全角空格作为缩进,因为并非所有段落都有缩进故不采用 CSS 的 te ...