简单博弈论


寻找平衡状态(也称必败态, 奇异局势),(满足:任意非平衡态经过一次操作可以变为平衡态)

()巴什博奕(Bash Game):

只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m.最后取光者得胜.

n = (m+1)r+s , (r为任意自然数,s≤m), 即n%(m+1) != 0, 则先取者肯定获胜

()威佐夫博奕(Wythoff Game):

有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜.

(ak,bk)(ak ≤ bk ,k=0,1,2,...,n)表示奇异局势

        性质1:任何自然数都包含在一个且仅有一个奇异局势中。 
        性质2:任意操作都可将奇异局势变为非奇异局势。
        性质3:

一定存在规则允许的某种操作可将必胜点(非奇异)移动到必败点(奇异);

求法:

ak =[k(1+√5)/2], bk= ak + k (k=0,1,2,...,n 方括号表示取整函数)

       判断:

              Gold=(1+sqrt(5.0))/2.0;

1)假设(a,b)为第k种奇异局势(k=0,1,2...) 那么k=b-a;

2)判断其a==(int)(k*Gold),相等则为奇异局势

局势(Ak,Bk)   奇异局势特征:Ak =[k(1+√5)/2],Bk= Ak + k (k=0,1,2,...n 方括号表示取整函数)

结论:Bk - Ak = k;   if(Ak == [k * (1 + 

√5

) / 2])  ->奇异局势。

(注:采用适当的方法,可以将非奇异局势变为奇异局势.

假设面对的局势是(a,b)  若 b = a,则同时从两堆中取走 a 个物体,就变为了奇异局势(0,0);

1.       如果a = ak,

1.1   b > bk, 那么,取走b - bk个物体,即变为奇异局势(ak, bk);

1.2   b < bk 则同时从两堆中拿走 ak – a[b – ak]个物体,变为奇异局势( a[b – ak] , a[b – ak]+ b - ak);

2         如果a = bk ,

2.1   b > ak ,则从第二堆中拿走多余的数量b – ak

2.2   b < ak ,则 若b = aj (j < k) 从第一堆中拿走多余的数量a– bj; (a > bj)

若b = bj (j < k) 从第一堆中拿走多余的数量a– aj; ( a > aj)

例题:pku 1067

()尼姆博奕(Nimm Game):

n堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜.

任何奇异局势(a1, a2, … , an)都有a1(+)a2(+)…(+)an =0. ( (+)为 按位^)

引入 局势 ( X1,X2,X3····X n)的Nim-Sum = X1^X2^X3^············Xn;
  任何奇异局势都有Nim-SUm = 0。

转载请注明出处,谢谢http://blog.csdn.net/acm_cxlove/article/details/7854526       by---cxlove


首先当然要献上一些非常好的学习资料:

基础博弈的小结:http://blog.csdn.net/acm_cxlove/article/details/7854530

经典翻硬币游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854534

经典的删边游戏小结:http://blog.csdn.net/acm_cxlove/article/details/7854532

五篇国家集训队论文:

张一飞: 《由感性认识到理性认识——透析一类搏弈游戏的解答过程 

王晓珂: 解析一类组合游戏

方展鹏:《浅谈如何解决不平等博弈问题》

贾志豪:《SG形》

曹钦翔:从“k倍动态减法游戏”出发 探究一类组合游戏问题

貌似还有一篇,找不到了。对于论文,看得不是很深,里面好多证明都非常详细,也没有仔细研究过。

建议从基本的NIM博弈,深入了解SG函数的意义。


=======================================================================

HDOJ1079&POJ1082&ZOJ1024 Calendar Game [找规律博弈]
根据奇偶性的变化找到规律,特殊情况特殊考虑
http://blog.csdn.net/acm_cxlove/article/details/7834004


HDOJ1525&POJ2348 Euclid's Game [找规律博弈]
根据每一步的必然性以及可选择性决策
http://blog.csdn.net/acm_cxlove/article/details/7834336


HDOJ1564 Play a game [找规律]
打表发现奇偶性规律

HDOJ1846 Brave Game [找规律]
简单的巴什博弈,当n为m+1的时候后者胜,否则前者胜。因为如果为m+1,不论前者怎么取,后者都能胜。


HDOJ1847 Good Luck in CET-4 Everybody! [找规律]
基本的SG函数构造


HDOJ2147 kiki's game [找规律]
可以打出PN表,不过可以直接找到规律,n和m只要有一个为偶数则必胜


HDOJ2516 取石子游戏 [找规律]
FIB博弈模型,http://blog.csdn.net/acm_cxlove/article/details/7834336


HDOJ2897 邂逅明下 [找规律]SG打表
类似巴什博弈找出区间[1-p]必败  [p+1,p+q]必胜(取一个q,就能进入第一个区间) [p+q+1,2*p+q]必败,[2*p+q+1,2*p+2*q]必胜


HDOJ3032 Nim or not Nim? [找规律]SG打表
Lasker's Nim游戏,通过打表可以发现规律
http://blog.csdn.net/acm_cxlove/article/details/7835178


HDOJ3389 Game [找规律]
1. 分成一个二分图
如果可以从A拿卡片到B,连一条从A到B的边。把所有box编号x满足((x%


3==0&&x%2==1) || x%3==1)这个条件的放左边,其他放右边,不难发现
a) 只有从左边到右边的边或从右到左的边。
b) 所有不能拿卡片出去的box都在左边。
2. 证明左边的box并不影响结果。假设当前从右边的局势来看属于输家的人为了
摆脱这种局面,从左边的某盒子A拿了n张卡片到B,因为B肯定有出去的边,对手
会从B再取走那n张卡片到左边,局面没有变化
3. 于是这就相当于所有右边的box在nim游戏。


HDOJ3537 Daizhenyang's Coin [找规律]SG打表
翻硬币游戏,之Mock Turtles游戏
http://blog.csdn.net/acm_cxlove/article/details/7854181

HDOJ3544 Alice's Game [找规律]
题目还是有点不理解,找到最优策略,每次二分。。

HDOJ3863 No Gambling [找规律]简单对偶博弈
先者必胜,容易发现,是堵不住的

HDOJ3951 Coin Game [找规律]

环形取石子,只要第一步不取完,就变成一条链,那么对手都能从中间取,将其分成相等的两堆石子利用对称性解题




HDOJ2188 悼念512汶川大地震遇难同胞——选拔志愿者 
[巴什博弈]

HDOJ2149 Public Sale [巴什博弈]输出走法
明显如果能一步达到要求的话,那么解为m……n
如果n是m+1的步数的话,是必败,无论你加多少,如果 a,对方都会加m+1-a
,否则将价格控制在n%(m+1)处

HDOJ1850 Being a Good Boy in Spring Festival [基础Nim博弈]
需要输出可行方案数量,表示第一步之后要使nim积为0,则一个个判断是否大于要移走的数量

HDOJ2176 取(m堆)石子游戏 
[基础Nim博弈]输出第一步走法


HDOJ1527&POJ1067 取石子游戏 [威佐夫博弈]
威佐夫博奕(Wythoff Game),判断是否为a=k*(sqrt(5)+1)/2,b=a+k

HDOJ2177 取(2堆)石子游戏 [威佐夫博弈]
需要输出方案,打表,然后查找
http://blog.csdn.net/acm_cxlove/article/details/7836150

HDOJ1517&POJ2505 A Multiplication Game [K(2~9)倍博弈]
同样的在1-9先手必胜,面是10-18,不论先手怎么办,都是后者赢。同样19-162为先手胜。可以发现规律

HDOJ2486&HDOJ2580&POJ3922 A simple stone game [K倍动态减法游戏]
神奇构造数列
http://blog.csdn.net/acm_cxlove/article/details/7836544

HDOJ4315 Climbing the Hill [阶梯博弈]
阶梯NIM,将奇数位作NIM,偶数位不影响

HDOJ1538 A Puzzle for Pirates [海盗分金问题]
海盗分金的详细推理以及证明
http://blog.csdn.net/acm_cxlove/article/details/7853916

HDOJ3404 Switch lights [Nim积]
http://blog.csdn.net/acm_cxlove/article/details/7836764

-----------------------------------------------------------------------
HDOJ1404 Digital Deletions [SG博弈]
由于字符串长度只有6,整合成一个整数,暴力打SG表,从P态,能一步到达的是N态

HDOJ1536&HDOJ1944&POJ2960&ZOJ3084 S-Nim [SG博弈]
SG函数,对于每一个集合,求出SG函数

HDOJ1729 Stone Game [SG博弈]
SG函数,http://blog.csdn.net/acm_cxlove/article/details/7838563


HDOJ1730 Northcott Game [SG博弈]
转换成之间距离的NIM博弈

HDOJ1760 A New Tetris Game [SG博弈]二维状态
DFS博弈。

HDOJ1848 Fibonacci again and again [SG博弈]
SG打表

HDOJ1849 Rabbit and Grass [SG博弈]
转换成NIM

HDOJ1851 A Simple Game [SG博弈]
范围不大,直接构造SG函数,或者转化成NIM与巴什博弈的结合

HDOJ1907&&POJ3480&ZOJ3113 John [SG博弈]
ANTI-SG,见贾志豪论文
http://blog.csdn.net/acm_cxlove/article/details/7839276

HDOJ2509 Be the Winner [SG博弈]可以分成两堆的操作
ANTI-SG,同上

HDOJ2873 Bomb Game [SG博弈]
SG函数打表,类似于NIM,最后求游戏的和

HDOJ2999 Stone Game, Why are you always there? [SG博弈]
构造SG,http://blog.csdn.net/acm_cxlove/article/details/7840042

HDOJ3595 GG and MM [SG博弈]
Every-SG问题,http://blog.csdn.net/acm_cxlove/article/details/7840427

HDOJ3980 Paint Chain [SG博弈]
原本是一个环,先染一段,便成链,而且第一步是固定的。环的状态不好处理 。
我们先不管第一步,从链开始,一个链从中间染色就可能砍成两段,便成两个子
问题。后期见http://blog.csdn.net/acm_cxlove/article/details/7840042
最后再把第一步考虑上。

HDOJ4111 Alice and Bob [SG博弈]DP+石子合并
http://blog.csdn.net/acm_cxlove/article/details/7841115

HDOJ4155&ZOJ1827 The Game of 31 [SG博弈]记忆化搜索
搜索,5^6

HDOJ4203 Doubloon Game [找规律][SG博弈]
虽然是普通的SG博弈,不过数据太大,没办法打SG表,只能在小数据中找规律。

HDOJ1524 A Chess Game [有向无环图SG博弈]
和普通SG博弈类似,递归求出后继结点的SG值
http://blog.csdn.net/acm_cxlove/article/details/7842242

HDOJ3094 A tree game [有向无环树形图SG博弈]
树的删边游戏http://blog.csdn.net/acm_cxlove/article/details/7842586

HDOJ3590 PP and QQ [树形SG博弈]反博弈,砍树
树的删边游戏+ANTI-SG,
http://blog.csdn.net/acm_cxlove/article/details/7842743

HDOJ3197 Game [树形SG博弈]砍树
树的删边游戏,把多棵树的根异或起来就行了

=======================================================================

POJ1740 A New Stone Game [找规律]

POJ2484 A Funny Game [找规律]
环形取石子,只要第一步不取完,就变成一条链,那么对手都能从中间取,将其分成
相等的两堆石子

POJ2234 Matches Game [基础Nim博弈]


POJ2975&ZOJ3067 Nim [基础Nim博弈]输出方法


POJ2368 Buttons [巴士博弈变形]
巴什博弈的理解,只要找到总数的因子-1即可。不过因为不能为1,所以对于因子
从3开始,而且对于那种偶数要格外注意

POJ2311 Cutting Game [SG博弈]
对于一个状态n*m,找到后继状态,SG博弈
http://blog.csdn.net/acm_cxlove/article/details/7845904


POJ2425 A Chess Game [SG博弈]
树形,无向无环图博弈

POJ1678 I Love this Game! [动态博弈]动归+博弈
博弈DP,记忆化搜索
http://blog.csdn.net/acm_cxlove/article/details/7846480

POJ2068 Nim [SG博弈]双人博弈
二维博弈DP,http://blog.csdn.net/acm_cxlove/article/details/7846793


POJ3537 Crosses and Crosses [SG博弈]
每次选择一个位置放下后,左右邻近的4个位置,都不会主动放下棋子。长度为N
的棋盘,如果在位置I放下棋子后,则分为左边I-3个位置和右边N-I-2个位置的子游戏

POJ2599 A funny game [树形SG博弈]记忆化
搜索,N/P的状态转换
http://blog.csdn.net/acm_cxlove/article/details/7847347

POJ3710 Christmas Game [图上博弈]无向图删边
Tarjan算法找出环,处理环之后,便是经典的删边游戏。
拥有奇数条边的环可简化为一条边,偶数条边的环可简化为一个节点。
http://blog.csdn.net/acm_cxlove/article/details/7848001

POJ1704 Georgia and Bob [阶梯博弈]
将之间的距离作为石子堆,对于阶梯博弈,偶数堆不影响,相当于奇数堆的NIM。

POJ2931 Procrastination [不平等博弈]
跪舔,题目看不懂,论文看不懂。
有兴趣的可以看方展鹏论文,《浅谈如何解决不平等博弈问题》

POJ3533 Light Switching Game [Nim积]
三维的NIM积

=======================================================================

ZOJ2290 Game  [找规律]
FIB博弈

ZOJ2686 Cycle Game [找规律]dfs搜索
直接搜索会超时,我们做一些优化,发现如果某个方向有连续奇数个非0数,那么
先手便可以朝那个方向,每次把数全部取完,对手如果也取完,那么一直下去先
手胜,如果对手不取完,那么先手反向取完,还是先手胜
http://blog.csdn.net/acm_cxlove/article/details/7850050

ZOJ2725 Digital Deletions [找规律]打表
同HDU 1404

ZOJ2083 Win the Game [SG博弈]
SG博弈,将长度为n的线段,分为两部分,i,n-i-2。异或之后取mex操作

ZOJ2507 Let's play a game [反Nim,SG博弈]
ANTI-SG游戏,见http://blog.csdn.net/acm_cxlove/article/details/7839276

ZOJ3513 Human or Pig [SG递推]
递推,P态的所有后继都为H态,否则则为H态

ZOJ3529 A Game Between Alice and Bob [SG博弈]
SG博弈,可以发现SG值便是质因子个数,转换成NIM
http://blog.csdn.net/acm_cxlove/article/details/7850798

ZOJ3591 Nim [Nim博弈]+位运算
先生成序列,nim[i]表示前i个堆的异或值,如果nim[i]==nim[j],则表示
i+1,i+2……j的异或值为0,为必败。
http://blog.csdn.net/acm_cxlove/article/details/7851099

ZOJ3057 beans game [DP博弈]
三维保存状态,博弈DP。注意卡时卡内存
http://blog.csdn.net/acm_cxlove/article/details/7851904

ZOJ1039 Number Game [状压+博弈树]记忆化搜索
状态压缩,将19个数字压缩,充分利用位运算,每次找到后继集合,记忆化搜索
http://blog.csdn.net/acm_cxlove/article/details/7852347

ZOJ3599 Game [K倍博弈]
与HDU 2486 类似,
http://blog.csdn.net/acm_cxlove/article/details/7836544

ZOJ2804 Funny Games [不知道什么类型]
题目看不懂。。。。
=======================================================================

UVA12350 Queen Game [跪舔的博弈]
题目看不懂。。。。


你可能感兴趣的:(bash)