链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2147

题意:

在一个n*m的棋盘上,从  (1,m),即右上角开始向左下角走。

下棋者只能往左边(left),左下面(left-underneath),下面(underneath),这三个方格下棋。

最后不能移动的人算输

思路: 
手动可以画出必胜态以及必败态的图 
可以很容易 找出规律

(1) 所有终结点是必败点(P点);

(2)从任何必胜点(N点)操作,至少有一种方法可以进入必败点(P点);

(3)无论如何操作,从必败点(P点)都只能进入必胜点(N点).

由此可知 10*10之内的为   (完全可以手写出来)

NNNNNNNNNN 
PNPNPNPNPN 
NNNNNNNNNN 
PNPNPNPNPN 
NNNNNNNNNN 
PNPNPNPNPN 
NNNNNNNNNN 
PNPNPNPNPN 
NNNNNNNNNN 
PNPNPNPNPN

可以看出  NN

PN  这样的规律    之后很容易知道怎么做了

代码:

#include<stdio.h>
int main()
{
int n,m;
while(scanf("%d%d",&n,&m))
{
if(n==&&m==)break;
if(n%==&&m%==)printf("What a pity!\n");
else printf("Wonderful!\n");
}
return ;
}

还可以用SG函数打表找出我们所要的结果NP 图

#include<stdio.h>
#include<string.h>
const int sz=;
int SG[sz][sz];
int dir[][]={-,,,,-,};
int n,m;
void get_sg()
{
int i,j;
memset(SG,,sizeof(SG));
for(i=n;i>=;i--)
for(j=;j<=m;j++)
{
if(!SG[i][j])
for(int k=;k<;k++)
{
int xx=i+dir[k][];
int yy=j+dir[k][];
if(xx>=&&xx<=n&&yy>=&&yy<=m)
{
SG[xx][yy]=;
}
}
}
}
int main()
{
int i,j; while(scanf("%d %d",&n,&m)!=EOF)
{
get_sg();
for(i=;i<=n;i++)
{
for(j=;j<=m;j++) if(SG[i][j]==) printf("N"); else printf("P");
printf("\n");
}
if(SG[][m]==)
{
printf("Wonderful!\n");
}
else printf("What a pity!\n");
}
return ;
}

(博弈 sg入门)kiki's game -- hdu -- 2147的更多相关文章

  1. (博弈 sg入门2)

    接下来介绍Nim游戏(同样引用杭电上的,懒的打字) 1.有两个玩家:   2.  有三堆扑克牌(比如:可以分别是    5,7,9张):  3. 游戏双方轮流操作:  4. 玩家的每次操作是选择其中某 ...

  2. kiki's game HDU - 2147(找规律)

    #include"stdio.h" int main( ) { int n,m; ||m!=)) { ==||m%==) printf("Wonderful!\n&quo ...

  3. hdu 2147 kiki's game(巴什博弈)

    kiki's game HDU - 2147 题意:一个n*m的表格,起始位置为右上角,目标位置为左下角,甲先开始走,走的规则是可以向左,向下或者向左下(对顶的)走一格.谁先走到目标位置谁就胜利.在甲 ...

  4. hdu 2147 kiki&#39;s game, 入门基础博弈

    博弈的一些概念: 必败点(P点) : 前一个选手(Previous player)将取胜的位置称为必败点. 必胜点(N点) : 下一个选手(Next player)将取胜的位置称为必胜点. 必败(必胜 ...

  5. HDU.2147 kiki's game (博弈论 PN分析)

    HDU.2147 kiki's game (博弈论 PN分析) 题意分析 简单的PN分析 博弈论快速入门 代码总览 #include <bits/stdc++.h> using names ...

  6. S-Nim HDU 1536 博弈 sg函数

    S-Nim HDU 1536 博弈 sg函数 题意 首先输入K,表示一个集合的大小,之后输入集合,表示对于这对石子只能去这个集合中的元素的个数,之后输入 一个m表示接下来对于这个集合要进行m次询问,之 ...

  7. HDU 2147 kiki's game(博弈经典题)

    题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2147 Problem Description Recently kiki has nothing to ...

  8. HDU 2147 kiki's game(规律,博弈)

    kiki's game Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 40000/10000 K (Java/Others)Total ...

  9. (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 首先来玩个游戏,引用杭电课件上的: (1) 玩家:2人:(2) 道具:23张扑克牌:(3) 规则: ...

随机推荐

  1. PhpStorm 10.0.3 下载安装与汉化

    https://www.7down.com/soft/229568.html 2JA97R55MG-eyJsaWNlbnNlSWQiOiIySkE5N1I1NU1HIiwibGljZW5zZWVOYW ...

  2. web常用测试点记录

    输入框 1.字符型输入框: 单行文本输入框:英文全角.英文半角.数字.空或者空格.特殊字符“~!@#¥%……&*?[]{}”,特别要注意单引号和&符号.如果禁止直接输入特殊字符时,使用 ...

  3. C#中XML文档注释编译DLL引用到其它项目

    引用地址:http://zhidao.baidu.com/link?url=jSGYEBysE4gBExtNsHCVk3vd2OK2cMlaf02cS79GdRuGueTBdFJB0btOdBYkg_ ...

  4. lodop打印控件需要开启的几个计算机服务

    首先要开启: 其次:

  5. VBA7种文档遍历法

    Sub 在选定文档最后加入一句话() '遍历文件 Dim MyDialog As FileDialog On Error Resume Next Application.ScreenUpdating ...

  6. PAT 甲级 1009 Product of Polynomials (25)(25 分)(坑比较多,a可能很大,a也有可能是负数,回头再看看)

    1009 Product of Polynomials (25)(25 分) This time, you are supposed to find A*B where A and B are two ...

  7. IPv6 Tunnel Broker+ROS搭建6TO4(IPV6)网络

    准备条件:1.公网IPV4的IP2.ROS+IPV6的DHCP,本测试在ROS6.24版本下测试通过3. IPv6 Tunnel Broker:https://www.tunnelbroker.net ...

  8. RPC框架之Thrift分析(转)

    一.简介 1.Thrift是Facebook开发的跨语言的RPC服务框架.随后贡献给Apache开源组织.成为RPC服务的主流框架.   2.特点:  优点:       跨语言,支持java.c/c ...

  9. EF 汇总函数使用注意事项Max()/Min()等

    一.字符串类型最大值 1.字符串类型的最大值,和数据库的字典排序最后一个相同,如果存在返回null //字符串最大值,是字典排序最后一个 string max1 = _context.students ...

  10. Java下LDAP操作的资料

    话说LDAP真是个诡异的protocol(或者数据库,或者服务,whatever...),没有一个特别形象的spec.这里列出一些筛选出的还可以的文档,都是oracle的: https://docs. ...