(博弈 sg入门)kiki's game -- hdu -- 2147
链接:
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的更多相关文章
- (博弈 sg入门2)
接下来介绍Nim游戏(同样引用杭电上的,懒的打字) 1.有两个玩家: 2. 有三堆扑克牌(比如:可以分别是 5,7,9张): 3. 游戏双方轮流操作: 4. 玩家的每次操作是选择其中某 ...
- kiki's game HDU - 2147(找规律)
#include"stdio.h" int main( ) { int n,m; ||m!=)) { ==||m%==) printf("Wonderful!\n&quo ...
- hdu 2147 kiki's game(巴什博弈)
kiki's game HDU - 2147 题意:一个n*m的表格,起始位置为右上角,目标位置为左下角,甲先开始走,走的规则是可以向左,向下或者向左下(对顶的)走一格.谁先走到目标位置谁就胜利.在甲 ...
- hdu 2147 kiki's game, 入门基础博弈
博弈的一些概念: 必败点(P点) : 前一个选手(Previous player)将取胜的位置称为必败点. 必胜点(N点) : 下一个选手(Next player)将取胜的位置称为必胜点. 必败(必胜 ...
- HDU.2147 kiki's game (博弈论 PN分析)
HDU.2147 kiki's game (博弈论 PN分析) 题意分析 简单的PN分析 博弈论快速入门 代码总览 #include <bits/stdc++.h> using names ...
- S-Nim HDU 1536 博弈 sg函数
S-Nim HDU 1536 博弈 sg函数 题意 首先输入K,表示一个集合的大小,之后输入集合,表示对于这对石子只能去这个集合中的元素的个数,之后输入 一个m表示接下来对于这个集合要进行m次询问,之 ...
- HDU 2147 kiki's game(博弈经典题)
题目传送:http://acm.hdu.edu.cn/showproblem.php?pid=2147 Problem Description Recently kiki has nothing to ...
- HDU 2147 kiki's game(规律,博弈)
kiki's game Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 40000/10000 K (Java/Others)Total ...
- (巴什博弈 sg函数入门1) Brave Game -- hdu -- 1846
链接: http://acm.hdu.edu.cn/showproblem.php?pid=1846 首先来玩个游戏,引用杭电课件上的: (1) 玩家:2人:(2) 道具:23张扑克牌:(3) 规则: ...
随机推荐
- GNU Radio: Synchronization and MIMO Capability with USRP Devices
Application Note Synchronization and MIMO Capability with USRP Devices Ettus Research Introduction S ...
- 爬取爱奇艺电视剧url
----因为需要顺序,所有就用串行了---- import requests from requests.exceptions import RequestException import re im ...
- Java 获取字符串指定下标位置的值 charAt()
Java手册 charAt public char charAt(int index) 返回指定索引处的 char 值.索引范围为从 0 到 length() - 1.序列的第一个 char 值位于索 ...
- MySQL 多表关联更新及删除
目录: <MySQL中的两种临时表> <MySQL 多表关联更新及删除> <mysql查询优化之三:查询优化器提示(hint)> 一. 多表关联更新 问题 ...
- 关于Android App开发知识体系的一个小总结
前言 本文从热更新.异步并发.性能优化.网络请求等多个方面对Android App开发的知识体系进行了一个分类总结.欢迎大家沟通交流. 热更新 [原]热更新开源项目Tinker源码解析之Dex热更新 ...
- 6.1课堂笔记—DML(数据操作语言),DQL查询语句
一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...
- Quest.Central.for.DB2.v5.0.2.4下载地址
http://pan.baidu.com/s/1h5vgl 激活码 2-95710-02204-91891-68750yhason
- Django---Xss过滤以及单例模式
Xss过滤 在表单填写的过程中我们就用到textarea,富文本编辑框,里面要用户输入相关的内容.如果有的人想要搞怪,在里面写一些js代码或者修改编辑的时候修改源代码,那提交上去之后就会使得页面显示不 ...
- 2.spring整合ehcache 注解实现查询缓存,并实现实时缓存更新或删除
转自:http://www.importnew.com/23358.html 写在前面:上一篇博客写了spring cache和ehcache的基本介绍,个人建议先把这些最基本的知识了解了才能对今天主 ...
- ACCESS 组合字段 order by 出错
ACCESS 组合字段 order by 出错 SELECT boardID,boardType,parentID,child,depth,rootID,(parentStr + ',' + boar ...