hdu 5754 Life Winner Bo 博弈论
对于king:我是套了一个表。

如果起点是P的话,则是后手赢,否则前手赢。
车:也是画图推出来的。

马:也是推出来的,情况如图咯。

对于后:比赛时竟然推错了。QAQ最后看了题解:是个威佐夫博奕。(2,3),(4,6),(5,8)……(ak,ak+k),ak是当前没有出现过的最小正整数。k就是两个坐标的差值,从1,2,3,4……
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int ty,n,m;
int vis[];
void bo1()
{
if(n%==||m%==)
{
printf("B\n");
}
else
{
printf("G\n");
}
}
void bo2()
{
if(n==m)
{
printf("G\n");
}
else
{
printf("B\n");
}
}
void bo3()
{
if(n%==&&m%==&&n==m)
{
printf("G\n");
}
else if(n%==&&m==n-)
{
printf("B\n");
}
else if(m%==&&n==m-)
{
printf("B\n");
}
else
{
printf("D\n");
}
}
void bo4()
{
memset(vis,,sizeof(vis));
int maxn = max(n,m);
int cnt = ;
int flag = ;
for(int i=;i<=maxn;i++)
{
if(vis[i]) continue; //当前没访问过的最小正整数
int j = i+cnt;
cnt++;
vis[i] = vis[j] = ;
if(i==min(n,m)&&j==max(n,m)) flag = ;
}
if(flag) printf("G\n");
else printf("B\n");
}
int main()
{
int t;
cin>>t;
while(t--)
{
scanf("%d %d %d",&ty,&n,&m);
switch(ty)
{
case :
bo1();
break;
case :
bo2();
break;
case :
bo3();
break;
case :
bo4();
break;
}
}
return ;
}
卷珠帘
hdu 5754 Life Winner Bo 博弈论的更多相关文章
- 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 组合博弈
Life Winner Bo Problem Description Bo is a "Life Winner".He likes playing chessboard gam ...
- 【博弈论】HDU 5754 Life Winner Bo
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5754 题目大意: 4种棋子,象棋中的 1王,2车,3马,4后,选其一,B和G轮流走,不能往左上走,一 ...
- HDU 5754 Life Winner Bo (找规律and博弈)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5754 给你四种棋子,棋子一开始在(1,1)点,两个人B和G轮流按每种棋子的规则挪动棋子,棋子只能往右下 ...
- HDU 5754 Life Winner Bo(各类博弈大杂合)
http://acm.hdu.edu.cn/showproblem.php?pid=5754 题意: 给一个国际象棋的棋盘,起点为(1,1),终点为(n,m),现在每个棋子只能往右下方走,并且有4种不 ...
- 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
四种棋子实质上都是一样的思路: 如果某位置的棋子,它下一步可以走到的位置中 能找到有后手胜的位置,那么该位置先手必胜. 如果某位置的棋子,它下一步可以走到的位置中 全是先手胜,那么该位置后手必胜. 其 ...
- Life Winner Bo (博弈论)
kind:维持让对手处于(奇数,奇数)的状态,就能赢. rook:维持让对手处于(A,A)相等的状态,就能赢. knight:画图找规律,没有到达终点的就是平局. queen:威佐夫博弈论,终点不一样 ...
- HDU 5754Life Winner Bo
Life Winner Bo Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
随机推荐
- SQL SERVER与C#的数据类型对应表
序号 类别 SQLServer C Sharp 备注 1 整数 bit Boolean True转换为1False转换为0 2 tinyint Byte C Sharp 数据类型都位于System命名 ...
- getReadableDatabase 和 getWritableDatabase的区别
(1)getWritableDatabase()方法以读写方式打开数据库.一旦数据库的磁盘空间满了,数据库就只能读而不能写,此时用getWritableDatabase()打开数据库就会出错. (2) ...
- nginx proxy优化
常用优化要点 当nginx用于反向代理时,每个客户端将使用两个连接: 一个用于响应客户端的请求,另一个用于到后端的访问: 如果机器是两核CPU,例如: 1 2 $ grep ^proces /proc ...
- Shell script fails: Syntax error: “(” unexpected
Shell script fails: Syntax error: “(” unexpected google 一下. http://unix.stackexchange.com/questions/ ...
- 得到root,并且获取密码
第一次使用ubuntu的时候 先使用这个命令 sudo passwd root 然后就可以改密码了
- Hibernate 系列教程12-继承-Join策略
Employee public class Employee { private Long id; private String name; HourlyEmployee public class H ...
- NSAttributedString in Swift
转载自: https://www.invasivecode.com/weblog/attributed-text-swift/ I have been talking quite a lot in ...
- Android中的分页加载
//----------------------MainActivity中--------------------------------------------------- package com ...
- Map 根据value 排序
总是有特殊的需求 ,呵呵 ,一起看看Map 根据value 排序的一个例子吧,还用到了泛型 很不错 此文仅供自己记录笔记. /** * hashmap 根据值排序 */ public static & ...
- 学习笔记——状态模式State
状态模式,主要是用于存在大量case判断的操作执行,同时这些case依赖于对象的状态,那么就可以将大量的case判断封装为独立的类. Context: -state,当前状态对象. ChangeSta ...