vjudge

题意

有一个\(1*N\)的棋盘,双方轮流在棋盘上下棋,先形成三个连续棋子者胜。
\(N\le2000\)

sol

还是要转换成“不能操作者败”的问题。
如果一方在格子\(i\)上下了一个棋,那么\(i-2,i-1,i+1,i+2\)(如果有的话)这些格子一定再也不能下了(因为你一下对方就赢了)
那么一次下棋相当于把棋盘砍成两半,变成了两个独立的子问题。
所以直接预处理出\(SG\)函数。复杂度\(O(n^2)\)

code

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 2005;
int n,SG[N];
int getSG(int x)
{if (x<0) return 0;if (SG[x]!=-1) return SG[x];bool vis[N]={0};for (int i=1;i<=x;++i) vis[getSG(i-3)^getSG(x-i-2)]=1;for (int i=0;i<=2000;++i) if (!vis[i]) return SG[x]=i;
}
int main()
{memset(SG,-1,sizeof(SG));for (int i=3;i<=2000;++i) getSG(i);while (scanf("%d",&n)!=EOF) puts(SG[n]?"1":"2");return 0;
}

转载于:https://www.cnblogs.com/zhoushuyu/p/8665857.html

[POJ3537]Crosses and Crosses相关推荐

  1. poj 3537 Crosses and Crosses 博弈论之grundy值

    题意: 给1*n的格子,轮流在上面叉叉,最先画得3个连续叉叉的赢.问先手必胜还是必败. 分析: 求状态的grundy值(也就是sg值),详细怎么求详见代码.为什么这么求要自己想的,仅仅可意会(别人都说 ...

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

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

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

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

  4. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  5. HALCON示例程序measure_ring.hdev齿轮齿宽度测量

    HALCON示例程序measure_ring.hdev齿轮齿宽度测量 示例程序源码(加注释) 关于显示类函数解释 read_image (Image, 'rings_and_nuts') dev_cl ...

  6. Mutli-SG游戏 ——学习笔记

    还是先给出Mutli-SG的定义: Multi-SG 游戏规定,在符合拓扑原则的前提下,一个单一游戏的后继可以为多个单一游戏. Multi-SG 其他规则与 SG 游戏相同. 关于这种游戏,Jia Z ...

  7. Easy_language

    http://www.guosen.com.cn/gxzq/tradestation/help/operate/operate06.html power language https://seekin ...

  8. 博弈论题目总结(二)——SG组合游戏及变形

    SG函数 为了更一般化博弈问题,我们引入SG函数 SG函数有如下性质: 1.如果某个状态SG函数值为0,则它后继的每个状态SG函数值都不为0 2.如果某个状态SG函数值不为0,则它至少存在一个后继的状 ...

  9. Python-pptx Chart

    image 图表 python-pptx提供了一个用于添加和操作图表的API. 图表对象(例如表格)不是形状. 而是它是包含在GraphicFrame形状中的图形对象. 图形框架形状提供形状API,例 ...

  10. ACM——博弈论 (以SG的求法为主)

    HDU 1847Good Luck in CET-4 Everybody! n个石子取2的次幂个,0为terminal position P/N分析和求SG值方法都可以,找规律的话模3余0也能过 主要 ...

最新文章

  1. 受用一生的高效 PyCharm 使用技巧(六)
  2. 如何在TVM上集成Codegen(下)
  3. 图论-最短路径--3、SPFA算法O(kE)
  4. 投资83亿!“双一流”高校异地落户,传来新消息!
  5. Struts 学习笔记1 -Struts Framework 概览
  6. BZOJ2843:极地旅行社
  7. Java学习——使用Static修饰符
  8. 160809308周子济第7次作业
  9. 【剑指offer】面试题62:圆圈中最后剩下的数字(Java)
  10. ACM 博弈专题(5种模板)
  11. linux循环控制结构,Linux Shell 之 Shell 基本控制结构(二)(循环结构)
  12. 【Spark】Spark ListenerBus 和 MetricsSystem 体系分析
  13. malloc/free与new/delete的使用要点
  14. c++builder ping_C++实现ping功能转
  15. C++_二维数组的动态申请内存3种方法
  16. 工作中用到的sh脚本(持续更新)
  17. 医院管理系统服务器,医院管理的十大运行系统!
  18. Android实现键盘拨号
  19. Sublime Text3 for Mac(代码编辑器)中文特别版
  20. 靠腾讯光速上位,但同程艺龙可不能忘了“练内功”

热门文章

  1. 计算机安装固态硬盘后启动不稳定,完美解决win7系统安装固态硬盘后开机慢的解决方法...
  2. macos mojave_如何选择退出macOS Mojave Beta
  3. 数据分析团队的搭建与思考
  4. Error:(292, 40) java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符) ........
  5. 什么是十六进制法_十六进制计算方法是什么?
  6. sqlserver2000局域网无法远程访问
  7. 摄像头参数介绍 ———— 视场角(FOV)
  8. 你相信吗?这是210万“像素”人工画成的肖像_-Chaz-_新浪博客
  9. 隐藏APP图标并通过代码启动
  10. DirectX11 With Windows SDK--00 目录