Luogu 2575 高手过招-SG函数
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函数的更多相关文章
- 洛谷P2575高手过招——SG函数初试
题目:https://www.luogu.org/problemnew/show/P2575 第一次用SG函数解决问题,有许多不熟练的地方: 试图按自己的理解写一个dfs,结果错了(连题都没读对,以为 ...
- 洛谷$P$2575 高手过招 博弈论
正解:博弈论 解题报告: 传送门! 阿西$gql$又双叒被题意杀辣,,,再不好好学语文吃枣药丸$TT$ 然后在$get$规则之后还有什么问题嘛,,, 就和这题差不多了,一个$easy$的阶梯问题罢辽, ...
- Luogu P2575 高手过招
题目链接 \(Click\) \(Here\) 关键在于转换成阶梯\(Nim\)的模型.最开始把题目看错了,理解正确后发现棋子可以向后跳不止一位,那么就比较简单了. 这里把空格看做阶梯,棋子看做硬币, ...
- BZOJ 1188 / Luogu P3185 [HNOI2007]分裂游戏 (SG函数)
题意 有n个格子,标号为0 ~ n-1,每个格子上有若干石子,每次操作可以选一个0 ~ n-2的格子上的一颗石子,分裂为两颗,然后任意放在后面的两个格子内,这两个格子可以相同.求使先手必胜的第一步的方 ...
- 博弈论与SG函数
巴什博奕: 两个顶尖聪明的人在玩游戏,有n个石子,每人可以随便拿1−m个石子,不能拿的人为败者,问谁会胜利 结论: 设当前的石子数为\(n=k∗(m+1)\)即\(n%(m+1)==0\)时先手一定失 ...
- P3235-[HNOI2014]江南乐【整除分块,SG函数】
正题 题目链接:https://www.luogu.com.cn/problem/P3235 题目大意 \(T\)组游戏,固定给出\(F\).每组游戏有\(n\)个石头,每次操作的人可以选择一个数量不 ...
- HDU 5795 A Simple Nim 打表求SG函数的规律
A Simple Nim Problem Description Two players take turns picking candies from n heaps,the player wh ...
- 【转】博弈—SG函数
转自:http://chensmiles.blog.163.com/blog/static/12146399120104644141326/ http://blog.csdn.net/xiaofeng ...
- 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)运算 ...
随机推荐
- centos7.5下yum 安装mariadb数据库
前言 mariadb 和mysql就像亲兄弟的关系,各种语法.驱动啥的,在mysql上能上的,在mariadb上基本都可以直接使用.更多的细节在此不多说. 1.删除旧版本 centos7下默认安装有m ...
- Java字节流Stream的使用,创建方法
首先:FileOutputStream写入数据文件 学习父类的方法 使用子类的对象 步骤: 1:子类中的构造方法 作用 :绑定输出的目的地 FileOutputStream fos= new F ...
- 关于U3D图片的压缩格式
http://blog.sina.com.cn/s/blog_930ffa0b0102vass.html
- fiddler常用操作
fiddler常用操作 标签(空格分隔): fiddler fidrdler抓取https请求: fiddler是一个很好的抓包工具,但是默认的是抓取HTTP的,对于pc的https的会提示网页不安全 ...
- wordpress smtp发送邮件
准备工作 进入qq邮箱 点击设置 邮箱设置 账户选项 下拉 找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务 开启 点击开启后发送短信内容 配置邮件客户端 到 ...
- Oracle常用查看表结构命令(转)
转自:http://www.cnblogs.com/qingsong-do/archive/2011/11/29/2267244.html 获取表: select table_name from us ...
- CSS 变量教程
一.变量的声明 声明变量的时候,变量名前面要加两根连词线(--). body { --foo: #7F583F; --bar: #F7EFD2; } 上面代码中,body选择器里面声明了两个变量:-- ...
- centos 7 下 TFTP服务器安装
一.介绍 TFTP(Trivial File Transfer Protocol,简单文件传输协议)),是一个基于UDP 协议 69端口 实现的用于在客户机和服务器之间进行简单文件传输的协议提供不复杂 ...
- Cookie 和Session 简介
前言 HTTP是一种无状态的协议,为了分辨链接是谁发起的,需自己去解决这个问题.不然有些情况下即使是同一个网站每打开一个页面也都要登录一下.而Session和Cookie就是为解决这个问题而提出来的两 ...
- 81. Search in Rotated Sorted Array II (Array; Divide-and-Conquer)
Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...