大意:

给定一个\(1 * n\)的棋盘,你和对手轮流在上面画"X"

当出现三个连续的X时,最后一步操作的人胜利


不难发现,在棋盘中画了一个X之后

问题等价于两个一样的子游戏

然后暴力求\(sg\)函数即可

复杂度\(O(n^2)\)


#include <bitset>
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std; #define ri register int
#define rep(io, st, ed) for(ri io = st; io <= ed; io ++)
#define drep(io, ed, st) for(ri io = ed; io >= st; io --) const int sid = 2e3 + 50;
int n, sg[sid];
bitset <sid> ex; inline void Init() {
rep(i, 1, 2000) {
ex.reset();
rep(j, 1, i) {
int tmp = 0;
if(j - 3 >= 0) tmp ^= sg[j - 3];
if(i - j - 2 >= 0) tmp ^= sg[i - j - 2];
ex[tmp] = 1;
}
rep(j, 0, 2000)
if(!ex[j]) {
sg[i] = j;
break;
}
}
} int main() {
Init();
while(scanf("%d", &n) == 1)
printf("%d\n", (sg[n]) ? 1 : 2);
return 0;
}

最新文章

  1. 自定义 Lint 规则简介
  2. java基础随笔-overload和override
  3. UIView 弹出动画
  4. 此证书的签发者无效Missing iOS Distribution signing identity问题解决
  5. 斯坦福 IOS讲义 课件总结 三
  6. C#多线程之旅(7)——终止线程
  7. Anti-pattern/反模式
  8. 从手机中提取boot.img
  9. CentOS 7.x 安装 Docker-Compose
  10. [HTML/CSS]导航栏的下划线跟随效果
  11. spring4笔记----PropertyOverrideConfigureer 重写占位符配置器(图)
  12. jenkins检查代码,如没更新停止构建步骤
  13. WebApi服务以及跨域设置
  14. 添加一个Activity
  15. css--clearfix浮动
  16. 课程一(Neural Networks and Deep Learning),第三周(Shallow neural networks)—— 0、学习目标
  17. Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】
  18. Docker中查看Mysql数据库中的各环境参数
  19. 关于JS call apply 对象、对象实例、prototype、Constructor、__proto__
  20. C#中的程序集和命名空间

热门文章

  1. windebug常用命令
  2. 使用solrJ管理索引——(十四)
  3. 【Linux技术】ubuntu常用命令【转】
  4. Ubuntu 12.04下LVM2安装和操作实验
  5. Jenkins忘记用户名密码
  6. quartz的一个误导
  7. mysql命令补全工具
  8. python网络编程--线程event
  9. Oracle 中count(1) 、count(*) 和count(列名) 函数的区别
  10. No.10 selenium学习之路之通过元素定位获取属性