【博弈论】专题总结

刷了差不多两星期的博弈啊(其实还用了很多时间准备坑爹的会考- -)

虽然不是特别熟悉 但是比之前看到博弈就orz好多了

把副队给的题目刷完之后AK表示还不过瘾 又去把wikioi&vijos的博弈题目都刷了一遍

里面好几道重复的题目我就没打了 看了下保存的文件 刷了19题

我看的论文:

《从“k倍动态减法游戏”出发探究一类组合游戏问题》

《组合游戏略述——浅谈SG游戏的若干拓展及变形》

还有这篇博客不错 讲了3种博弈问题 我威佐夫就是在这看的:

http://blog.csdn.net/liwen_7/article/details/7943210

Nim游戏:

给出N堆石子的个数 每个人可以从一堆中取若干个石子 不能取的人输 问先手是否必胜

这是博弈的一道最基础的题目 做博弈时有一句话特别重要:

能转移到必败态的状态就是必胜态 只能转移到必胜态的就是必败态

对这道题目 所有石子异或和为0的为必败态 否则为必胜态

因为首先没有石子的肯定是必败态 异或和为0

1.必胜态能转移到必败态

  当前异或和不为0 设为k 设k的二进制表示为(xn xn-1 .. x2 x1)2  (xi∈{1,0}, xn=1)

  可以证明必然存在ai二进制下第n位为1

  则把ai这堆石头取到剩下ai^k 显然ai^k<ai 这样取完后ai的异或和为0 为必败态

2.必败态只能转移到必胜态

  当前异或和为0 又每次只能且必须改变一个ai

  又ai对k的每一个二进制位只有1的影响 改变后必然导致k≠0 为必胜态

得证

SG函数

定义mex运算 这是施加于一个集合的运算 表示最小的不属于这个集合的非负整数

一个状态的sg值就是mex(所有他能达到的状态的sg值)

显然一个状态没有状态能转移sg值为0

若sg值为x(x>0) 则说明我们能通过一步转移使得状态sg值变为0~x-1

这就和Nim游戏一样了

所以一个游戏的sg值就等于组成它的子游戏的sg异或和

原文地址:https://www.cnblogs.com/g-word/p/3513939.html