BZOJ 1022 SHOI2008 小约翰的游戏John 博弈论

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");
	}
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115489.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月3日 下午7:00
下一篇 2022年2月3日 下午7:00


相关推荐

  • efax365免费网络传真群发软件 v2.43 绿色版

    efax365免费网络传真群发软件 v2.43 绿色版2019独角兽企业重金招聘Python工程师标准>>>…

    2022年6月28日
    33
  • base编码器_base100编码

    base编码器_base100编码Base64编码是一种基于64个可打印字符来表示二进制数据的方法。目前Base64已经成为网络上常见的传输8位二进制字节代码的编码方式之一。为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如:传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送。这样用途就受到了很大的限制。图片的二进制流的每个字节不可能全部是可…

    2022年10月9日
    6
  • OpenClaw(Clawdbot)教程:通过 WhatsApp 控制您的电脑

    OpenClaw(Clawdbot)教程:通过 WhatsApp 控制您的电脑

    2026年3月14日
    2
  • 在pycharm中配置Anaconda的python工具包_anaconda pycharm环境配置

    在pycharm中配置Anaconda的python工具包_anaconda pycharm环境配置anacondaanaconda是一个工具包平台,里面有一系列Python编程过程中需要使用的工具包,安装了anaconda就相当于配置好了Python环境,不需要在额外安装一次Python,也不需要再一个个安装工具包,避免了从入门到放弃,anaconda的安装流程如下:首先下载anaconda安装包,可以直接在官网下载,anaconda下载地址根据自身需求下载合适的版本即可。下载完成后,双击安装程序点击next点击Iagree选择AllUsers选择自己的安装路径,点击nex

    2022年8月27日
    7
  • 电信光纤友华PT921G,烽火HG220光猫激活成功教程关闭自带路由改桥接拨号教程「建议收藏」

    电信光纤友华PT921G,烽火HG220光猫激活成功教程关闭自带路由改桥接拨号教程「建议收藏」电信光纤友华PT921G光猫激活成功教程关闭自带路由改桥接拨号教程电信光猫质量烂就算了,最受不了它自带的路由还做了手脚,导致VPN用不了。不让看AV就算了,打个外服游戏总可以吧?不知道为啥,网上关于光猫改桥接的教程基本没有,搜出来的也说得很不清楚,是和谐了还是什么原因不得而知。本人也是自己自己试出来的,其实修改难度并不大,只不过那个界面搞的特奇葩特不友好罢了。废话不多说,步骤如下:

    2022年6月27日
    175
  • 用java判断闰年的条件解释_Java判断闰年的2种方法示例

    用java判断闰年的条件解释_Java判断闰年的2种方法示例前言:给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1.年份是4的倍数而不是100的倍数;2.年份是400的倍数。其他的年份都不是闰年。方法一:publicclassBissextile{booleanbissextile(intyear){//创建boolean类型的方法if(year%4==0&&year%100!=…

    2022年7月8日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号