5754Life Winner Bo
给定一个n*m的矩阵,有四种棋子(国际象棋的王,王后,骑士,车)。起点在(1,1)先走到(n,m)获胜。
分析:车是nim博弈。王后是威佐夫博弈。王和骑士写两个1000*1000的预处理即可。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
const int N=;
int f[N][N],g[N][N];
void deal1()
{
int i,j;
f[][]=;
for(i=;i<=;i++)
for(j=;j<=;j++)
{ if(i==&&j==)continue;
else
{
f[i][j]=;
if(i>&&f[i-][j]==)f[i][j]=;
if(j>&&f[i][j-]==)f[i][j]=;
if(i>&&j>&&f[i-][j-]==)f[i][j]=;
}
}
} void deal2()
{
int i,j,d,e;
g[][]=;g[][]=-;
for(i=;i<=;i++)g[][i]=g[i][]=-;
for(i=;i<=;i++)
for(j=;j<=;j++)
{
if(j==&&i==)continue;
else
{
d=;e=;
if(i>)d++;if(j>)d++;
if(i>&&g[i-][j-]==)e++;
if(j>&&g[i-][j-]==)e++;
if(d==e)g[i][j]=;//所有的后继都为必胜,则它为必败态
else
{
if((j>&&g[i-][j-]==)||(i>&&g[i-][j-]==))
g[i][j]=;//后继有一个必败态,则它为必胜态
else
g[i][j]=-;//不是必胜态或必败态那么这个位置不满足条件
}
} }
}
int main()
{ int i,x,n,m,t,xo;
scanf("%d", &t);
deal1();deal2();
while (t--) {
scanf("%d%d%d", &x, &n, &m);
if (x==) {
if (f[n][m]==) printf("B\n");
else printf("G\n");
} else if (x==) {
xo=(n-)^(m-); //因为第一个位置是(1,1),不是(0,0);
if (xo) printf("B\n");
else printf("G\n");
} else if (x==) {
if (g[n][m]==-) printf("D\n");
else if (g[n][m]==) printf("B\n");
else printf("G\n");
} else {
n--;m--; //同理
if (n>m) swap(n,m);
x=(int)(n*(sqrt()-)/);
if (n==(int)(x*(+sqrt())/)&&n+x==m) printf("G\n");
else if (n==(int)((x+)*(+sqrt())/)&&n+x+==m) printf("G\n");
else printf("B\n");
}
}
return ;
}
5754Life Winner Bo的更多相关文章
- HDU 5754Life Winner Bo
Life Winner Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- HDU 5754 Life Winner Bo 组合博弈
Life Winner Bo Problem Description Bo is a "Life Winner".He likes playing chessboard gam ...
- HDU 5754 Life Winner Bo (博弈)
Life Winner Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754 Description Bo is a "Life W ...
- hdu_5754_Life Winner Bo(博弈)
题目链接:hdu_5754_Life Winner Bo 题意: 一个棋盘,有国王,车,马,皇后四种棋子,bo先手,都最优策略,问你赢的人,如果双方都不能赢就输出D 题解: 全部都可以直接推公式, 这 ...
- hdu-5754 Life Winner Bo(博弈)
题目链接: Life Winner Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- HDU5754 Life Winner Bo(博弈)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5754 Description Bo is a "Life Winner" ...
- Life Winner Bo HDU - 5754
Bo is a "Life Winner".He likes playing chessboard games with his girlfriend G. The size of ...
- HDU 5754 Life Winner Bo (各种博弈) 2016杭电多校联合第三场
题目:传送门 题意:一个国际象棋棋盘,有四种棋子,从(n,m)走到(1,1),走到(1,1)的人赢,先手赢输出B,后手赢输出G,平局输出D. 题解:先把从(n,m)走到(1,1)看做是从(1,1)走到 ...
- HDU 5754 Life Winner Bo (找规律and博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5754 给你四种棋子,棋子一开始在(1,1)点,两个人B和G轮流按每种棋子的规则挪动棋子,棋子只能往右下 ...
随机推荐
- java class load
https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=403638649&idx=2&sn=4f17e8b58c64875 ...
- Operating System 概述和学习图
Operating System 概述和学习图 大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access, ...
- .NET面试问答集锦
程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...
- SugarSync网盘之XML解析
iOS的XML解析 刚在应用里支持了SugarSync网盘.其实也是第一次听说这个网盘,不过在国外貌似还蛮有名,这些都不是重点,重点是借此来总结一下iOS的XML解析.Xml想必也不陌生了,但是在iO ...
- 【javascript】判断浏览设备是手机还是电脑
判断页面浏览设备是手机还是电脑,代码如下: function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase( ...
- 核心C#
核心C# 内容提要: 声明变量:变量的初始化和作用域:C#的预定义数据类型:在C#程序中使用条件语句.循环和跳转语句指定执行流:枚举:名称空间: Main()方法:基本命令行C#编译器选项:使用Sys ...
- (Java 多线程系列)java volatile详解
在前面的文章里面介绍了synchronized关键字的用法,这篇主要介绍volatile关键字的用法. Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其它 ...
- TaskTracker获取并执行map或reduce任务的过程1
TaskTracker获取并执行map或reduce任务的过程(一) 我们知道TaskTracker在默认情况下,每个3秒就行JobTracker发送一个心跳包,也就是在这个心跳包中包含对任务的请求. ...
- xml数据解析
xml数据解析 在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.Kiss ...
- ckedit 在源码模式下插入文本
ckedit的源码模式下是禁用insertText方法的 ,下面是解决方案 if(CKEDITOR.instances[Itemname].mode=='wysiwyg'){ CKEDITOR.ins ...