ACM寒假集训第一天:博弈论

集训内容:博弈论(巴什博弈、威佐夫博奕、尼姆博弈、斐波那契博弈、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数之和。

猜你喜欢

转载自blog.csdn.net/qq_43678290/article/details/86490524