题目:在1*n 的棋盘里面,A和B都在里面画叉 , 如果谁可以画了一个叉后,可以连成3个叉,那谁胜利 ;

分析: 首先考虑如果我在玩游戏,我最希望对手可以画出-x-x or  -xx-   ,  这种情况 ,也就是说玩家就一定不可画成这样给对手制造机会 ;  那可以当成画了一个叉后 就分成了 (x-3) , (x-2-i)  ,两个游戏 ,那我们可以根据SG的性质来解决这种分解游戏的游戏

#include<stdio.h>
#include<string.h> //注意 S数组要按从小到大排序 SG函数要初始化为-1 对于每个集合只需初始化1遍
//n是集合s的大小 S[i]是定义的特殊取法规则的数组
int s[],sg[],n;
int SG_dfs(int x)
{
int i;
if(x<)
return ;
if(sg[x]!=-)
return sg[x];
bool vis[];
memset(vis,,sizeof(vis));
for(i=;i<=x;i++)
{
vis[SG_dfs(i-)^SG_dfs(x--i)]=;
}
int e;
for(i=;;i++)
if(!vis[i])
{
e=i;
break;
}
return sg[x]=e;
}
int main( )
{
int n;
memset(sg,-,sizeof(sg));
while(scanf("%d",&n)!=EOF)
{
if(SG_dfs(n))
puts("");
else
puts("");
}
}

最新文章

  1. js 为字符串添加样式
  2. linux 生成KEY的方法与使用
  3. &quot;XX cannot be resolved to a type &quot;eclipse报错及解决说明
  4. Netty线程模型
  5. (转载)javascript转自世纪流年blog
  6. 数据类型转换中的一些特殊情况(JY06-JavaScript)
  7. HDU 1681 Frobenius(完全背包+标记装满)
  8. Raphael初始化,path,circle,rect,ellipse,image
  9. ES6学习总结二(数组的四个方法,字符串)
  10. MySQL之数据的简单查询
  11. python实现简单的购物车
  12. 【菜鸟学Python】案例一:汇率换算
  13. 配置GitHub的SSH key
  14. Java8 利用Lambda处理List集合循环给另外一个List赋值过滤处理
  15. css继承样式怎么控制?用选择器
  16. OnContextMenu事件(转)
  17. Chrome浏览器导出pdf时,隐藏链接HREF
  18. php5.5过渡--mysql连接
  19. syscall to rop
  20. 如何通过from语句调用模块的变量名?

热门文章

  1. LOJ2722 「NOI2018」情报中心
  2. [CERC 2008] Suffix reconstruction
  3. jumpserver遇到的坑
  4. 安装phpredis
  5. SSH不允许Root登陆的方法
  6. netty中的ByteBuf
  7. Mybaits整合Spring自动扫描 接口,Mybaits配置文件.xml文件和Dao实体类
  8. CentOS 7 搭建 LAMP
  9. RN控件之TextInput
  10. java连接sqlserver2005数据库