Solution

SG函数跑一遍就过了ouo

Code

 #include<cstring>
#include<cstdio>
#include<algorithm>
#define rd read()
#define cl(a) memset(a, 0, sizeof(a));
using namespace std; const int N = << ; int SG[N], S[];
int T, n; int read() {
int X = , p = ; char c = getchar();
for(; c > '' || c < ''; c = getchar()) if(c == '-') p = -;
for(; c >= '' && c <= ''; c = getchar()) X = X * + c - '';
return X * p;
} void mkSG() {
for(int i = ; i < ; ++i) SG[i] = ;
for(int i = ; i < ( << ); ++i) {
cl(S);
int last = -, nt;
for(int j = ; j < ; ++j) if((i >> j) & ) {
if(~last) {
nt = i | ( << last);
nt ^= << j;
S[SG[nt]] = ;
}
} else last = j;
int j = ;
for(; S[j]; ++j);
SG[i] = j;
}
} int main()
{
mkSG();
T = rd;
for(; T; T--) {
n = rd;
int ans = ;
for(int i = ; i <= n; ++i) {
int m = rd, tmp = ;
for(int j = ; j <= m; ++j) {
int x = rd;
tmp |= << ( - x);
}
ans ^= SG[tmp];
}
if(ans) puts("YES");
else puts("NO");
}
}

Luogu 2575 高手过招-SG函数的更多相关文章

  1. 洛谷P2575高手过招——SG函数初试

    题目:https://www.luogu.org/problemnew/show/P2575 第一次用SG函数解决问题,有许多不熟练的地方: 试图按自己的理解写一个dfs,结果错了(连题都没读对,以为 ...

  2. 洛谷$P$2575 高手过招 博弈论

    正解:博弈论 解题报告: 传送门! 阿西$gql$又双叒被题意杀辣,,,再不好好学语文吃枣药丸$TT$ 然后在$get$规则之后还有什么问题嘛,,, 就和这题差不多了,一个$easy$的阶梯问题罢辽, ...

  3. Luogu P2575 高手过招

    题目链接 \(Click\) \(Here\) 关键在于转换成阶梯\(Nim\)的模型.最开始把题目看错了,理解正确后发现棋子可以向后跳不止一位,那么就比较简单了. 这里把空格看做阶梯,棋子看做硬币, ...

  4. BZOJ 1188 / Luogu P3185 [HNOI2007]分裂游戏 (SG函数)

    题意 有n个格子,标号为0 ~ n-1,每个格子上有若干石子,每次操作可以选一个0 ~ n-2的格子上的一颗石子,分裂为两颗,然后任意放在后面的两个格子内,这两个格子可以相同.求使先手必胜的第一步的方 ...

  5. 博弈论与SG函数

    巴什博奕: 两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1−m个石子,不能拿的人为败者,问谁会胜利 结论: 设当前的石子数为\(n=k∗(m+1)\)即\(n%(m+1)==0\)时先手一定失 ...

  6. P3235-[HNOI2014]江南乐【整除分块,SG函数】

    正题 题目链接:https://www.luogu.com.cn/problem/P3235 题目大意 \(T\)组游戏,固定给出\(F\).每组游戏有\(n\)个石头,每次操作的人可以选择一个数量不 ...

  7. HDU 5795 A Simple Nim 打表求SG函数的规律

    A Simple Nim Problem Description   Two players take turns picking candies from n heaps,the player wh ...

  8. 【转】博弈—SG函数

    转自:http://chensmiles.blog.163.com/blog/static/12146399120104644141326/ http://blog.csdn.net/xiaofeng ...

  9. HDU 1848 Fibonacci again and again【SG函数】

    对于Nim博弈,任何奇异局势(a,b,c)都有a^b^c=0. 延伸: 任何奇异局势(a1, a2,… an)都满足 a1^a2^…^an=0 首先定义mex(minimal excludant)运算 ...

随机推荐

  1. centos远程连接putty工具配置

    Putty工具连接与使用步骤 作者:jason 登陆linux 一.关闭防火墙 输入命令 setup 完成后: 二.关闭selinux 输入命令 cd /etc/selinux 输入命令 vi  co ...

  2. c 语言的复杂声明

    简化的声明语法: dcl: optional *'s direct-dcl direct-dcl: name (dcl)  direct-dcl() direct-dcl[optional size] ...

  3. php正则替换双引号里面的字符

  4. Python教程_简介2

    人生苦短,我用Python--Life is short,you need Python. https://www.bilibili.com/video/av14184325/?p=101 Pytho ...

  5. 用Navicat for MySQL 连接 CentOS 6.5

     navicat for mysql windows 端 连接mysql服务器 用SSH通道访问 , 新建连接时配置如下 (两张图解释) 1.配置SSH . 配置常规

  6. appium+python自动化测试

    appium+python自动化测试 标签(空格分隔): appium 获取APP的包名 1.aapt即Android Asset Packaging Tool,在SDK的build-tools目录下 ...

  7. 第四章 栈与队列(d)队列接口与实现

  8. const 全面理解

    问题1:const int a : 和  int  const  a :的区别 定义一个变量: 类型描述符 + 变量名 类型描述符包括类型修饰符和数据类型. 类型修饰符有:short  long  u ...

  9. 上海高校金马五校赛 F题:1 + 2 = 3?

    链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言26214 ...

  10. PHP抽象方法、抽象类以及接口

     1.什么是抽象方法?    我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时 ...