给定一个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. Jquery中获取iframe的代码方法

    父窗口中操作iframe:window.frames["iframeChild"].document //假如iframe的id为iframeChild 在子窗口中操作父窗口:wi ...

  2. SOA的企业系统架构

    基于SOA的企业系统架构设计及IT治理日记 (引) TOGAF是一个架构框架,指导做企业架构的标准和方法,简而言之,是一种协助开发.验收.运行.使用和维护架构的工具,核心是架构开发方法(ADM)指导了 ...

  3. 包图Package

    [UML]UML系列——包图Package 系列文章 [UML]UML系列——用例图Use Case       [UML]UML系列——用例图中的各种关系(include.extend)       ...

  4. C# 多线程学习总结

    C# 多线程学习总结 C#多线程学习(一) 多线程的相关概念 什么是进程? 当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源.而一个进程又是由多个线程所组成的. ...

  5. [转]SHSH, APTicket以及iOS降級

    来源:http://disp.cc/b/522-4v3W 最近有一場Jailbreak的conference,叫做WWJC 裡面請到很多駭客來講解越獄相關知識 包括p0sixninja, iH8sn0 ...

  6. BF533的SPORT接口

    BF533的SPORT接口 1.特性 bf533有两个SPORT口(synchronous serial Port),即同步串行接口.完全独立的接收和发送通道,且每个通道都具有缓冲,最高速度可达SCL ...

  7. Event处理

    Event处理 今天抽时间写了一部分Event处理方面的函数愈发的觉得jQuery的优秀,自己前期的想法太粗糙,造成后面这些函数参数很多,操作很很不直观,看样子是要重构的节奏,还好小伙儿伴们安慰,架构 ...

  8. revel框架教程之缓存和Job

    Go语言实战 - revel框架教程之缓存和Job   所有的网站应该都会有一个非常简单的需求,首页一秒之内打开. 满足的方式主要有两种: 页面静态化,效果最好,对服务器基本没负担,只要带宽足够就好了 ...

  9. 竞价广告系统-ZooKeeper介绍

    ZooKeeper介绍 为了讲述的完整性,介绍一下ZooKeeper.ZooKeeper在Index和Ad Server里使用比较多,虽然它可能没有google的Chubby好,但它是开源的工具.举一 ...

  10. [置顶] ZK(The leading enterprise Ajax framework)入门指南

    1. Why ZK JavaEE领域从来就不缺少Framework尤其是Web Framework,光是比较流行的就有:SpringMVC.Struts2.JSF系列…… 其它不怎么流行的.小众的.非 ...