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 ...
随机推荐
- 总结day23 ---- 网络编程,以及计算机基础概念
计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播 主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无 ...
- 题目1002:Grading(简单判断)
问题来源 http://ac.jobdu.com/problem.php?pid=1002 问题描述 题目背景为高考试卷批改打分制度.对于每一道题,至少需要两位评审老师进行打分, 当两个老师的打分结果 ...
- UML总结
http://www.cnblogs.com/riky/archive/2007/04/07/704298.html
- QuantLib 金融计算——收益率曲线之构建曲线(2)
目录 QuantLib 金融计算--收益率曲线之构建曲线(2) YieldTermStructure 问题描述 Piecewise** 分段收益率曲线的原理 Piecewise** 对象的构造 Fit ...
- Mac下的浏览器类似Windows中Ctrl+F5的不请求缓存刷新页面的快捷键
正常方式: [shitf]+[command]+[r] 如果改过快捷键的: [fn]+[shift]+[command]+[f]
- MONO MessageBox 类
MessageBox类,负责提示各种消息. using System; using Android.App; using Android.Content; namespace Box { publ ...
- Kubernetes是什么
目录 简介 主要概念: 总体结构 参考 Kubernetes概念 简介 kubernetes是一个Google开源的容器编排系统,用于自动部署,扩展和管理容器化应用程序. 随处运行:支持公有云,私有云 ...
- spring cloud连载第二篇之Spring Cloud Config
Spring Cloud Config Spring Cloud Config为分布式服务提供了服务侧和客户侧的外部配置支持.通过Spring Cloud Config你可以有一个统一的地方来管理所有 ...
- BeanPostProcessor接口
BeanPostProcessor接口及回调方法图 1.InstantiationAwareBeanPostProcessor:实例化Bean后置处理器(继承BeanPostProcessor) po ...
- CSS3 图标神器 => content:"我是特殊符号"
基本形状 ▲ 9650 25B2 ► 9658 25BA ► 9658 25BA ▼ 9660 25BC ◄ 9668 25C4 ❤ 10084 2764 ✈ 9992 2708 ★ 9733 260 ...