HDU 1907 John(博弈)
2024-08-31 02:38:53
参考了博客:http://blog.csdn.net/akof1314/article/details/4447709
//0 1 -2
//1 1 -1
//0 2 -1
//1 2 -1
//2 2 -2
//0 3 -1
//1 3 -1
//2 3 -1
//3 3 -2
//0 4 -1
//1 4 -1
//2 4 -1
//3 4 -1
//4 4 -2
//0 5 -1
//1 5 -1
//2 5 -1
//3 5 -1 /*
尼姆博弈。对于N堆的糖,一种情况下是每堆都是1,那么谁输谁赢看堆数就知道;对于不都是1的话,若这些堆是奇异局势,或说他们是非奇异局势,但非奇异局势皆可以转换到奇异局势(具体转变看上一篇介绍)。
经典的尼姆问题是谁哪拿到最后一个则谁赢,本题是拿最后一个的输。下面分析第二种情况:
1.初始给的是奇异局势的话,则先取者为输。
2.初始给的是非奇异局势的话,则先取者为赢。辗转转换非奇异、奇异的次数是相对的。
*/
#include<stdio.h>
#include<string.h> int main(){
int t;
scanf("%d",&t);
while(t--) {
int n;
int a[];
scanf("%d",&n);
int sum=,k=;
for(int i=;i<n;i++) {
scanf("%d",&a[i]);
sum^=a[i];//这样子判断奇异局势吗?用 ^ ?
if(a[i]!=)k=;
}
if(k==) {
if(n%)printf("Brother\n");
else printf("John\n");
}
else {
if(sum==)printf("Brother\n");////这样子判断奇异局势,为0奇异
else printf("John\n");//否则非奇异
}
}
return ;
}
最新文章
- poj题目
- Navicat 回复 psc 文件 Mysql
- python特殊函数 __cmp__
- 前端自动化工具 -- grunt 使用简介
- deep learning
- MyBatis 用户表记录数查询
- ubuntu硬盘安装卡在探测文件系统
- Python基础学习笔记(六)常用列表操作函数和方法
- JavaFX(一)窗口跳转
- NOIP2006 作业调度方案
- 如何在CentOS 7上修改主机名
- 我的linux云服务器配置记录
- SQL性能优化的几点建议
- IIS进行URL重写
- Windows 查找txt后缀 文件复制
- Yii2 设计模式——工厂方法模式
- Sql查询今天、本周和本月的记录(时间字段为时间戳)
- mac os使用迁移助手之后运行php报:dyld相关错误,错误排错流程分析
- Winrar发现损坏的压缩文件头
- spring ioc 理解