Cutting Game poj-2311

题目大意:题目链接

注释:略。


想法

我们发现一次操作就是将这个ICG对应游戏图上的一枚棋子变成两枚。

又因为SG定理的存在,记忆化搜索即可。

最后,附上丑陋的代码... ...

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 250
using namespace std;
bool vis[N]; int sg[N][N];
int n,m;
int dp(int x,int y)
{if(sg[x][y]!=-1) return sg[x][y];memset(vis,false,sizeof vis);for(int i=2;i<=x-i;++i) vis[dp(i,y)^dp(x-i,y)]=1;for(int i=2;i<=y-i;++i) vis[dp(x,i)^dp(x,y-i)]=1;for(int i=0;;i++) if(!vis[i]) {sg[x][y]=i; return i;}
}
int main()
{memset(sg,-1,sizeof sg);sg[2][2]=sg[2][3]=sg[3][2]=0;while(scanf("%d%d",&n,&m)==2){if(dp(n,m)) puts("WIN");else puts("LOSE");}return 0;
}
/*7
2 2
3 2
4 2
*/

小结:SG定理应用极为广泛。

转载于:https://www.cnblogs.com/ShuraK/p/9614586.html

[poj2311]Cutting Game_博弈论相关推荐

  1. 【题解】POJ2311 Cutting Game

    link 题目大意 有一 W × H W\times H W×H 的矩阵,两人博弈,每次可以沿网格水平切割或竖直切割,当切割后出现 1 × 1 1\times 1 1×1 的格子则获胜.给定 W , ...

  2. [poj2234]Matces Game_博弈论

    Matches Game poj-2234 题目大意:n堆石子的Nim游戏,anti-SG. 注释:$1\le n\le 20$. 想法:用Colon定理即可.具体见:小约翰的游戏 最后,附上丑陋的代 ...

  3. OI每周刷题记录——lrllrl

    看这标题就知道我是模仿的hzwer大佬,远程%%% 大佬的OI经历让蒟蒻我深受感触,为了晚一些AFO本蒟蒻也得加油了 从高二上期第一周开始计数,每个星期天更一次,一直更到我AFO 如果这是我此生最后一 ...

  4. 博弈论探讨及题目总结

    转载自爱神博客:http://blog.csdn.net/acm_cxlove/article/details/7854526 首先当然要献上一些非常好的学习资料: 基础博弈的小结:http://bl ...

  5. 博弈论——公平组合游戏与SG函数

    参考自算法竞赛进阶指南 公平组合游戏与有向无环图 一个博弈游戏被称为公平组合游戏(ICG)当且仅当其同时满足3个条件 由两名玩家交替行动 游戏任意时刻可进行的操作与轮到哪名玩家无关 不能进行操作的玩家 ...

  6. ICPC程序设计题解书籍系列之三:秋田拓哉:《挑战程序设计竞赛》(第2版)

    白书<挑战程序设计竞赛>(第2版)题目一览 白书:秋田拓哉:<挑战程序设计竞赛>(第2版) 第1章 蓄势待发--准备篇(例题) POJ1852 UVa10714 ZOJ2376 ...

  7. 在Linux上安装IDA的命令,Linux安装IDA神器

    [Phylab2.0]Alpha版本项目展示 团队成员 冯炜韬(PM)http://www.cnblogs.com/toka 岳桐宇(后端)http://www.cnblogs.com/mycraft ...

  8. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  9. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

最新文章

  1. VC++读取txt文件指针的变化
  2. 并发编程11-测试并发程序
  3. OpenCV之core 模块. 核心功能(2)基本绘图 随机数发生器绘制文字 离散傅立叶变换 输入输出XML和YAML文件 与 OpenCV 1 同时使用
  4. 网络安全系列之三十五 缓冲区溢出
  5. 搞定系统设计 02:估算的一些方法
  6. SQLServer下 存储过程内 包含事务 及 返回处理是否成功
  7. JSP静态导入与动态导入
  8. 例子---PHP与Form表单之一
  9. XPath最通俗的教程(ZZ)
  10. 02.C(数据类型与运算符)
  11. 操作系统课程设计-模拟操作系统
  12. 用计算机怎么管理小米路由器,小米路由器电脑怎么设置_小米路由器怎么用电脑设置?-192路由网...
  13. 固态硬盘SSD闪存芯片的颗粒类型 和 颗粒等级
  14. Google Play 开发者注意事项
  15. python html 补全标签_补充:HTML标签和CSS
  16. 一个屌丝程序员的青春(四二)
  17. python中将字符变为大写_python3 数字转人民币大写
  18. 根据起始点经纬度、距离、方位角计算目标点经纬度的方法
  19. 大学计算机应用基础屈立成,五笔字型输入法教程-计算机应用基础教学网.PDF
  20. html5支付成功页面,订单完成页面视图《 微信支付:H5 移动端支付 》

热门文章

  1. 如何创建 SVN 服务器,并搭建自己的 SVN 仓库
  2. c# 开发window服务
  3. POJ - 2559 Largest Rectangle in a Histogram(单调栈)
  4. 【BZOJ-3730】震波 动态点分治 + 树状数组
  5. js创建对象之原型模式2原型与in操作符
  6. 微信公众平台开发问答 【转发】
  7. UI: 自定义 UISegmentedControl
  8. Windows下 Apache配置虚拟主机
  9. 人脸年龄编辑:无可奈何花落去,似曾相似春又来!
  10. 基于YOLOv3 与CRNN的中文自然场景文字检测与识别