给定一个n*m的矩阵,有四种棋子(国际象棋的王,王后,骑士,车)。起点在(1,1)先走到(n,m)获胜。

分析:车是nim博弈。王后是威佐夫博弈。王和骑士写两个1000*1000的预处理即可。

hdu5754Life Winner Bo 题目连接

 #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的更多相关文章

  1. HDU 5754Life Winner Bo

    Life Winner Bo Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) ...

  2. HDU 5754 Life Winner Bo 组合博弈

    Life Winner Bo Problem Description   Bo is a "Life Winner".He likes playing chessboard gam ...

  3. HDU 5754 Life Winner Bo (博弈)

    Life Winner Bo 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754 Description Bo is a "Life W ...

  4. hdu_5754_Life Winner Bo(博弈)

    题目链接:hdu_5754_Life Winner Bo 题意: 一个棋盘,有国王,车,马,皇后四种棋子,bo先手,都最优策略,问你赢的人,如果双方都不能赢就输出D 题解: 全部都可以直接推公式, 这 ...

  5. hdu-5754 Life Winner Bo(博弈)

    题目链接: Life Winner Bo Time Limit: 2000/1000 MS (Java/Others)     Memory Limit: 131072/131072 K (Java/ ...

  6. HDU5754 Life Winner Bo(博弈)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5754 Description Bo is a "Life Winner" ...

  7. Life Winner Bo HDU - 5754

    Bo is a "Life Winner".He likes playing chessboard games with his girlfriend G. The size of ...

  8. HDU 5754 Life Winner Bo (各种博弈) 2016杭电多校联合第三场

    题目:传送门 题意:一个国际象棋棋盘,有四种棋子,从(n,m)走到(1,1),走到(1,1)的人赢,先手赢输出B,后手赢输出G,平局输出D. 题解:先把从(n,m)走到(1,1)看做是从(1,1)走到 ...

  9. HDU 5754 Life Winner Bo (找规律and博弈)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5754 给你四种棋子,棋子一开始在(1,1)点,两个人B和G轮流按每种棋子的规则挪动棋子,棋子只能往右下 ...

随机推荐

  1. java class load

    https://mp.weixin.qq.com/s?__biz=MjM5NzMyMjAwMA==&mid=403638649&idx=2&sn=4f17e8b58c64875 ...

  2. Operating System 概述和学习图

    Operating System 概述和学习图 大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access, ...

  3. .NET面试问答集锦

    程序员级别鉴定书(.NET面试问答集锦) 提供避免元素命名冲突的方法 DOM适合的使用场景是什么?是否有尺寸限制? DOM是一种与浏览器,平台,语言无关的接口,使你可以访问页面其他的标准组件. DOM ...

  4. SugarSync网盘之XML解析

    iOS的XML解析 刚在应用里支持了SugarSync网盘.其实也是第一次听说这个网盘,不过在国外貌似还蛮有名,这些都不是重点,重点是借此来总结一下iOS的XML解析.Xml想必也不陌生了,但是在iO ...

  5. 【javascript】判断浏览设备是手机还是电脑

    判断页面浏览设备是手机还是电脑,代码如下: function browserRedirect() { var sUserAgent = navigator.userAgent.toLowerCase( ...

  6. 核心C#

    核心C# 内容提要: 声明变量:变量的初始化和作用域:C#的预定义数据类型:在C#程序中使用条件语句.循环和跳转语句指定执行流:枚举:名称空间: Main()方法:基本命令行C#编译器选项:使用Sys ...

  7. (Java 多线程系列)java volatile详解

    在前面的文章里面介绍了synchronized关键字的用法,这篇主要介绍volatile关键字的用法. Java语言提供了一种稍弱的同步机制,即volatile变量,用来确保将变量的更新操作通知到其它 ...

  8. TaskTracker获取并执行map或reduce任务的过程1

    TaskTracker获取并执行map或reduce任务的过程(一) 我们知道TaskTracker在默认情况下,每个3秒就行JobTracker发送一个心跳包,也就是在这个心跳包中包含对任务的请求. ...

  9. xml数据解析

    xml数据解析 在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.Kiss ...

  10. ckedit 在源码模式下插入文本

    ckedit的源码模式下是禁用insertText方法的 ,下面是解决方案 if(CKEDITOR.instances[Itemname].mode=='wysiwyg'){ CKEDITOR.ins ...