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)运算 ...
随机推荐
- Java happen-before
下面是happens-before原则规则: 程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作: 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作 ...
- java语言 找出文章中出现次数最多的单词
package english; import java.io.File; import java.util.Scanner; import java.io.FileNotFoundException ...
- svn:Cannot negotiate authentication mechanism
解决方案:在eclipse->window->preference->team->svn中将svn接口设定为svnkit.
- Charles界面介绍及使用方法
本随笔主要内容: 一.Charles界面介绍 二.Charles使用 1.会话(Repeat.Focus.Compare.黑白名单等) 2.模拟请求做mock,使用断点.Map或Rewrite 3.指 ...
- js实现多级复选框的交互
功能介绍 整个复选框是包含多级,可能有父级,可能有子级,在勾选复选框时,要做两种判断: 1要判断它下面有没有子级,有子级将子级的选中状态checked变得和自己一样. 2要判断它是否有父级,有父级 ...
- jquery mobil 和页面适应
<meta name="viewport" content="width=device-width" />
- CSS 变量教程
一.变量的声明 声明变量的时候,变量名前面要加两根连词线(--). body { --foo: #7F583F; --bar: #F7EFD2; } 上面代码中,body选择器里面声明了两个变量:-- ...
- [Git] 获取指定的历史版本代码
首先 ,把项目 clone 到其他文件夹下 git clone git@github.com:skyming/BMAdScrollView.git 然后查看指定历史版本 tree 的 SHA chec ...
- DRF的权限和频率
DRF的权限 权限组件源码 权限和频率以及版本认证都是在initial方法里初始化的 我们的权限类一定要有has_permission方法~否则就会抛出异常~~这也是框架给我提供的钩子~~ 在rest ...
- JavaScript Validate a Valid Date formatted as "mm/dd/yyyy"
// Validates that the input string is a valid date formatted as "mm/dd/yyyy" function isVa ...