一开始就必胜的特判一下。

#include<cstdio>
#include<cstring>
#include<set>
#include<algorithm>
using namespace std;
int T,n,X[1001],Y[1001],SG[101][101];
int sg(int x,int y)
{if(SG[x][y]!=-1) return SG[x][y];set<int>S;for(int i=1;i<x;++i) if(x-i!=y) S.insert(sg(x-i,y));for(int i=1;i<y;++i) if(x!=y-i) S.insert(sg(x,y-i));int lim=min(x,y);for(int i=1;i<lim;++i) S.insert(sg(x-i,y-i));for(int i=0;;++i) if(S.find(i)==S.end()) return SG[x][y]=i;
}
int main()
{memset(SG,-1,sizeof(SG));scanf("%d",&T);for(;T;--T){scanf("%d",&n);int ans=0;for(int i=1;i<=n;++i){scanf("%d%d",&X[i],&Y[i]);if(X[i]==Y[i]||X[i]==0||Y[i]==0){puts("^o^");goto OUT;}}for(int i=1;i<=n;++i)ans^=sg(X[i],Y[i]);puts(ans?"^o^":"T_T");OUT:;}return 0;
}

转载于:https://www.cnblogs.com/autsky-jadek/p/4337269.html

【博弈论】【SG函数】bzoj1457 棋盘游戏相关推荐

  1. hdu1847-Good Luck in CET-4 Everybody! (博弈论 SG函数 找规律)

    Good Luck in CET-4 Everybody! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ...

  2. [AcWing] 1319.移棋子游戏 博弈论 Sg函数板子题

    题目链接:1319.移棋子游戏 题解 好久没写博弈论的题了,写几道复习一下,博弈论SG主要由两大部分组成:SG函数和SG定理 SG(x)=mex(S),其中S是x的后继状态的SG函数值集合,mex(S ...

  3. 网络与社会导论博弈论SG函数

    课上学习纳什均衡之后,经查找博理论相关资料,了解到巴什博奕.威佐夫博弈和SG函数等经典的模型,而SG函数正是处理一些博弈论问题的很好的办法,下面对其进行介绍. 我们来研究一个一般的游戏:给定一个有向无 ...

  4. 2016多校联合训练1 B题Chess (博弈论 SG函数)

    题目大意:一个n(n<=1000)行,20列的棋盘上有一些棋子,两个人下棋,每回合可以把任意一个棋子向右移动到这一行的离这个棋子最近的空格上(注意这里不一定是移动最后一个棋子),不能移动到棋盘外 ...

  5. 【NOI模拟赛】纸老虎博弈(博弈论SG函数,长链剖分)

    题面 某天,C 和 K 觉得很无聊,于是决定玩一个经典小游戏: 在一棵有 nnn 个结点的有根树上,标号为 iii 的节点上有 aia_iai​ 个棋子.游戏时玩家轮流操作,每次可以将任意一个节点 u ...

  6. 博弈论-SG函数和SG定理

    1.SG函数和SG定理是一个十分神奇的东西,有了它,绝大部分的博弈都可以被统一到这个上面,都可以使用SG函数解决.是一种解决博弈问题的十分方便的手段. 2.首先给出一些基本的定义:mex运算,这个是作 ...

  7. 博弈论SG函数-算法介绍及例题

    一. 基本概念: 1.  Impartial Combinatorial Games(ICG) 公平组合游戏: 1. 两名选手 2. 交替进行某种游戏规定的操作,每操作一次,选手可以在有限的操作(操作 ...

  8. 博弈论sg函数——《移旗子游戏》《剪纸游戏》

    传送门:移棋子游戏 思路:按照sg函数定义,在这道题里面,不能移动的状态就是终点态,sg值设为0,其余所有的点的sg函数值就是属于其所有后继节点的sg函数值组成的集合里面非集合元素的最小的一个数字,也 ...

  9. CF1369F-BareLee【博弈论,SG函数】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1369F 题目大意 TTT次游戏,每次给出一个sss和ttt,两个人轮流操作,可以让s=s+1s=s+1s=s+ ...

  10. 博弈论、SG定理和SG函数

    巴什博奕 巴什博弈:一堆物品有n个,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 结论: 如果n%(m+1)==0 ,那么先手必败,否则后手必败 首先我们引入PN点概念 ...

最新文章

  1. Linux编译mybatis,使用mybatis assembly插件打成tar包,在linux系统中运行服务-Go语言中文社区...
  2. 题目1095:2的幂次方
  3. 处理时间_2_计算两个时间列的差值
  4. WEB前端 前端开发者 如何突破技术瓶颈
  5. linux时间同步ntp服务的安装与配置
  6. handler和thread之间如何传输数据_HTTP和TCP之间的关系
  7. 仿真软件proteus点亮led实验
  8. 读《About Face 4 交互设计精髓》19
  9. kali下使用远程桌面连接
  10. F1 Delta Time 将停止运营,玩家的奖励如何?
  11. python uwsgi_python,uwsgi_安装uwsgi时报错,python,uwsgi - phpStudy
  12. STM32 printf 输出到usart1
  13. 六自由度机器人(机械臂)运动学建模及运动规划系列(三)——机器人建模及运动学分析的Matlab仿真
  14. vue+海康威视视频插件坑点记录
  15. 用python将txt文本中的数据导入excel
  16. NIO空轮训出现的原理以及修复方案
  17. 一文助你快速理解ZooKeeper
  18. java如何获得wlan mac_如何获取客户端MAC地址(三个方法)
  19. 四针手表指的是什么_六针手表是什么意思 六针手表全面解读
  20. MES系统的实施周期,到底有多久?

热门文章

  1. 编译-C语言库FFTW支持iOS平台的静态库
  2. Flutter开发之AlertDialog、AboutDialog对话框组件-2(41)
  3. (笔记) (ARM) QQ2440 开发板改为 GT2440 (Linux) (开发板)
  4. 编译安装MySQL5.6失败的相关问题解决方案
  5. 【H5】解决ios禁止缩放失效的方法
  6. WIN7中 HttpListener 拒绝访问 异常解决 C#
  7. 【已解决】关于SQL2008 “不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的标进行了更改或者启用了‘阻止保存要求重新创建表的更改’” 解决方案
  8. SpringBoot_异常_01_Caused by: java.lang.BootstrapMethodError: java.lang.NoSuchMethodError
  9. linux配置静态IP后ping外网不通的解决方案
  10. CLion 控制台输出内容乱码问题的解决方法