SJ定理——省选前的学习2
——博弈论?上SG定理!什么?不行?那就SJ定理吧。
原来还有这么个玩意。。。
bzoj1022.
大意是Nim取石子游戏中取到最后一个石子就算输,即无法取了就获胜(原版是无法取了就输)。
我们试图套SG定理。。。$SG_0$=??
比如我令SG[0]=1,那么问题来了:两堆石子,个数均为0,应该是先手必胜,但$SG_0 \oplus SG_0 = 0$,所以不合法。
SJ定理:
若把SG游戏中的空状态定义为必胜状态,那么状态是先手必胜当且仅当下述条件同时成立或同时不成立:
1: $SG_S = 0$
2: $\forall x \in S \; SG_x \leq 1$
其中,$SG_S$是状态的SG值,$SG_x$是各子问题的SG值。
证明(不想看请跳过):
首先,终止状态由于满足两个条件,所以必胜。
其次,证明必败态的后继全是必胜态:
1:若满足条件1而不满足2,那么$SG$值大于$1$的一定不止一个(因为异或中小于等于$1$的之会影响最后一位,所以前面所有位必须有至少两个数,即至少有两个数大于$1$),那么,进行一步后$SG$值一定非零,且还是有大于$1$的,即两条件都不满足。
2:若满足条件2而不满足条件1,可以发现现在一定只有奇数个$1$和若干$0$。那么现在有两种可能:
(1)将一个$1$变成$0$,或将一个$0$变成$1$(注意,$SG$值可以变大,但不会不变),那么条件1得到满足,且条件2仍满足,即为必胜态;
(2)将一个数变得大于$1$。此时可发现$SG$值异或和必不为$0$,所以两条件都不满足,为必胜态。
最后,证明必胜态至少有一个后继是必败态:
1:若两条件都满足,那么必有偶数个$1$和若干$0$,此时只需要将一个$1$变成$0$,就会使条件1不满足。
2:若两条件都不满足,那么:
(1)若只有一个数大于$1$,那么将其变为$0$和变为$1$都会满足条件2,且必有一个选择使$SG$值不为$0$,即为必败态;
(2)否则,后继必不满足条件2,此时类似于SG定理,必定能使$SG$值变为0,即为必败态。
证毕。
附AC代码:
#include <cstdio>
int main() {
int T, n, x, y, t;
for (scanf("%d", &T); T; --T) {
for (scanf("%d", &n), y = t = ; n; --n) {
scanf("%d", &x);
y ^= x;
t |= x > ;
}
puts((!!y ^ t) ? "Brother" : "John");
}
return ;
}
SJ定理——省选前的学习2的更多相关文章
- 省选前的th题
沙茶博主终于整完了知识点并学完了早该在NOIP之前学的知识们 于是终于开始见题了,之前那个奇怪的题单的结果就是这个了 题目按沙茶博主的做题顺序排序 个人感觉(暂时)意义不大的已被自动忽略 洛谷 491 ...
- 博弈论进阶之Anti-SG游戏与SJ定理
前言 在上一节中,我们初步了解了一下SG函数与SG定理. 今天我们来分析一下SG游戏的变式--Anti-SG游戏以及它所对应的SG定理 首先从最基本的Anti-Nim游戏开始 Anti-Nim游戏是这 ...
- [OI]省选前模板整理
省选前把板子整理一遍,如果发现有脑抽写错的情况,欢迎各位神犇打脸 :) 数学知识 数论: //组合数 //C(n,m) 在n个数中选m个的方案数 ll C[N][N]; void get_C(int ...
- [您有新的未分配科技点]博弈论进阶:似乎不那么恐惧了…… (SJ定理,简单的基础模型)
这次,我们来继续学习博弈论的知识.今天我们会学习更多的基础模型,以及SJ定理的应用. 首先,我们来看博弈论在DAG上的应用.首先来看一个小例子:在一个有向无环图中,有一个棋子从某一个点开始一直向它的出 ...
- BZOJ 1022: [SHOI2008]小约翰的游戏John [SJ定理]
传送门 $anti-nim$游戏,$SJ$定理裸题 规定所有单一游戏$sg=0$结束 先手必胜: $1.\ sg \neq 0,\ 某个单一游戏sg >1$ $2.\ sg = 0,\ 没有单一 ...
- [BZOJ1022] [SHOI2008] 小约翰的游戏John (SJ定理)
Description 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有n堆石子,小约翰和他的哥哥轮流取石子,每个人取的时候,可以随意选择一堆石子,在这堆石子中取走任意多的石子,但不能一粒石子也不取 ...
- [TaskList] 省选前板子补完计划
省选前本子补完计划 [ ] 带权并查集 [ ] 树上莫队 - UOJ58 [WC2013]糖果公园 loj2485「CEOI2017」Chase
- 省选前的JOI
RT,发现找不到题,于是又开了新坑 JOI特色:重思考,代码难度(相比NOI系列)基本没有 (省选前到处挖坑2333) JOI 2017 Final 焚风现象 差分,莫得了 (不是看到200ms就tm ...
- 【HDU 3590】 PP and QQ (博弈-Anti-SG游戏,SJ定理,树上删边游戏)
PP and QQ Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
随机推荐
- docker 实例设置自动重启
yaml格式太严格了,每个冒号后面都必须带有空格在linux中./代表当前目录,属于相对路径../代表上一级目录,属于相对路径/代表根目录,/开头的文件都是绝对路径./configure的意思是执行当 ...
- 2016级算法期末上机-E.中等·ModricWang's Fight with DDLs II
1125 ModricWang's Fight with DDLs II 思路 圆内被划分部分数的计算方式如下: 圆内部的每一个交点都使得总份数增加了一:除此之外,每一根直线段最后抵达圆周时,总份数也 ...
- 题目1006:ZOJ问题(字符串处理)
问题来源 http://ac.jobdu.com/problem.php?pid=1006 问题描述 输入一个只包含'z','o','j'三种字符的字符串,判断是否符合要求. 问题分析 分析AC的三个 ...
- [LibreOJ #2983]【WC2019】数树【计数】【DP】【多项式】
Description 此题含有三个子问题 问题1: 给出n个点的两棵树,记m为只保留同时在两棵树中的边时连通块的个数,求\(y^m\) 问题2: 给出n个点的一棵树,另外一棵树任意生成,求所有方案总 ...
- AES对称加解密
简介设计思想加密模式ECB模式(电子密码本模式:Electronic codebook)CBC模式(密码分组链接:Cipher-block chaining)CFB模式(密文反馈:Cipher fee ...
- (转)Heartbeat+DRBD+MySQL高可用方案
原文:http://www.cnblogs.com/gomysql/p/3674030.html 1.方案简介 本方案采用Heartbeat双机热备软件来保证数据库的高稳定性和连续性,数据的一致性由D ...
- SVN linux 服务器端配置
一. SVN 简单介绍 Subversion(SVN) 是一个开源的版本号控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository ...
- shiro学习笔记_0200_认证
认证,身份验证,验证用户是否合法 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals:用户的身份信息 ...
- 安装win7 64位和win10 64位双系统小结
1.gpt比mbr更先进.与主启动记录 (MBR) 分区方法相比,GPT 具有更多的优点,因为它允许每个磁盘有多达 128 个分区(mbr只支持4个分区),支持高达 18 千兆兆字节的卷大小,允许将主 ...
- Android多媒体技术之视频播放
1.Android中视频播放方式 surfaceView+MediaPlayer,通过MediaPlayer来控制视频的播放.暂停.进度等: 使用VideoView 来播放,这个类其实也是继承了Sur ...