博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 3537 Crosses and Crosses(SG/还未想完全通的一道SG)
阅读量:5120 次
发布时间:2019-06-13

本文共 677 字,大约阅读时间需要 2 分钟。

#include
#include
#include
using namespace std;int sg[2010];int get_sg(int n){ if(n<0) return 0; if(sg[n]!=-1) return sg[n]; bool vis[2010]; //莫名其妙! //vis[]数组要声明在函数里,如果放外面会WA memset(vis,0,sizeof(vis)); for(int i=1;i<=n;i++) vis[get_sg(n-i-2)^get_sg(i-3)]=1; //子局面异或 //每画一个x,左右各两个格子都不能选,即有五个格不能选 //所以分为左边i-3,右边n-i-2(即 n-(i+2),相当于左边的全都舍掉了)两个子游戏 for(int i=0;;i++) if(!vis[i]) return sg[n]=i;}int main(){ int n; memset(sg,-1,sizeof(sg)); while(~scanf("%d",&n)) { printf("%d\n",get_sg(n)?1:2); }}

转载于:https://www.cnblogs.com/atmacmer/p/5244035.html

你可能感兴趣的文章
Infiniband
查看>>
STM32唯一的ID
查看>>
Android scrollview嵌套listview运行后最先显示出来的位置不在顶部而是中间问题
查看>>
Java学习如何走出第一步
查看>>
排序算法 - 数据结构和算法87
查看>>
OpenGL.Qt532.cube
查看>>
使用springboot actuator监控应用
查看>>
JQuery 实现锚点链接之间的平滑滚动
查看>>
AngularJS ui-router (嵌套路由)
查看>>
A New Step Forward
查看>>
CentOS7 安装Chrome浏览器
查看>>
java 正则表达式学习
查看>>
08Struts2标签
查看>>
判断栈的弹出序列
查看>>
给QTextEdit添加背景图片及注意事项(转)
查看>>
多校4-Walk Out 分类: 比赛 201...
查看>>
iOS中的代理和Block
查看>>
Linux下Oracle常用命令
查看>>
11.12
查看>>
2017-2018-2 20179204《网络攻防实践》第七周学习总结
查看>>