首页 > 代码库 > 博弈论一 [ 巴什博奕 ]

博弈论一 [ 巴什博奕 ]

首先,这基本是关于ACM博弈论得一系列文章吧。

今天先讲一个最简单得博弈——巴什博奕。

其游戏规则是这样的:

有一堆n个石子,两个足够聪明的人玩,每个人可以去1~m个石子,取到最后一个石子为胜。

比如 n=7 ,m =3

那么先手必胜,过程大概如下,

先手取3,后首取i个,先手则拿4-i个,这样先手就拿到最后的石子了。(3+i+4-i=7,所以4-i就包含最后一个)。

那么其实想法很简单。

当n%(m+1)==0,先手必输,否则先手必胜。

为什么?

当n%(m+1)==0,时,先手取i个,后手去m+1-i(这样是合法得,因为先手不能拿完,但是至少拿1),这样一个回合就可以凑出m+1个,而n%(m+1)==0,所以n/(m+1)回合,后手就能取到最后一个。

当n%(m+1)=k,k>0,则先手去k个,此时石子回到n%(m+1)==0时,先手和后手于上一种情况则交换拿的顺序(即在n%(m+1)==0情况下,“后手”先拿),先手必胜。

那么问题就来了。

HDU1846(巴什博奕裸题)

http://acm.hdu.edu.cn/showproblem.php?pid=1846

题解:http://blog.csdn.net/dengyaolongacmblog/article/details/40452505


HDU2188(还是裸题)

http://acm.hdu.edu.cn/showproblem.php?pid=2188

题解:http://blog.csdn.net/dengyaolongacmblog/article/details/40452537


HDU2897(巴什博奕变形)

http://acm.hdu.edu.cn/showproblem.php?pid=2897

题解:http://blog.csdn.net/dengyaolongacmblog/article/details/40452561


POJ2368(巴什博奕变形)

http://poj.org/problem?id=2368

题解:http://blog.csdn.net/dengyaolongacmblog/article/details/40453285

博弈论一 [ 巴什博奕 ]