集训内容:博弈论(巴什博弈、威佐夫博奕、尼姆博弈、斐波那契博弈、SG函数)
复习基础DP+讲题
巴什博弈:
巴什博弈是最基本的一类博弈,他的定义如下
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
对于必胜态N和必败态P的分析:
现在如果有m+1个物品,则先手至少取一个,并且不能取完,就导致了先手必败;
如果物品数n<=m,则先手第一次即可全部取完,因此先手必胜;
如果物品数有(m+1)*x+c(c!=0)个,则先手第一次取c个,后手取y个,此后先手每次取(m+1)-y个,就可以保证每个m+1的最后一部分都是先手取得,因此先手必胜,同样的,如果c=0,则每个m+1的最后一部分都是后手取得,先手必败。
威佐夫博弈:
有两堆物品 每堆有若干个 两个人轮流取物品 规定有两种取法
1、从一堆物品中取 至少取一个 没有上限
2、从两堆物品中取相同个数的物品
将这两堆物品最后都取完的是winner
当面对(0,0) (1,2) (3,5) (4,7) (6,10) (8,13) (9,15) (11,18) (12,20)。。。。的情况是必败。
可以发现规律: (ak,bk);ak+k=bk;ak=(int)(k*(1+sqrt(5))/2);
所以只需判断两点之差*1.618(黄金分割数)是否等于ak即可判断是否是奇异点(必败)即可。
斐波那契博弈:
有一堆个数为n的石子,游戏双方轮流取石子,满足:
1)先手不能一次把所有的石子取完;
2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。
取走最后一个石子的人为winner,求必败态
实验猜想,Fibonacci数列:f[n]:1,1,2,3,5,8,13,21,34,55,89必败
借用“Zeckendorf定理”(齐肯多夫定理):任何正整数可以表示为若干个不连续的Fibonacci数之和。