描述
一天,TT在寝室闲着无聊,和同寝的人玩起了取石子游戏,而由于条件有限,他/她们是用旺仔小馒头当作石子。游戏的规则是这样的。设有一堆石子,数量为N(1<=N<=1000000),两个人轮番取出其中的若干个,每次最多取M个(1<=M<=1000000),最先把石子取完者胜利。我们知道,TT和他/她的室友都十分的聪明,那么如果是TT先取,他/她会取得游戏的胜利么?
输入第一行是一个...
分类:
其他好文 时间:
2014-10-05 00:28:47
阅读次数:
324
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1846博弈题主要在于找必败点,找规律。这题的解法:所谓巴什博弈,是ACM题中最简单的组合游戏,大致上是这样的:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取1个,最多取m个,最后取光者得胜。显...
分类:
其他好文 时间:
2014-09-26 18:20:58
阅读次数:
177
HDU 1846 Brave Game (巴什博弈)Description十年前读大学的时候,中国每年都要从国外引进一些电影大片,其中有一部电影就叫《勇敢者的游戏》(英文名称:Zathura),一直到现在,我依然对于电影中的部分电脑特技印象深刻。 今天,大家选择上机考试,就是一种勇敢(brave)的...
分类:
其他好文 时间:
2014-09-15 22:47:29
阅读次数:
330
题目地址:HDU 1847
这题可以用NP状态转换。
首先0的时候就代表无法出牌了,所以是必败态。然后根据每一个可以一步到达必败态的是必胜态,不可以一步到达必败态的是必败态。可以推出状态转移方程,然后用DP求解。即从已知状态向未知状态转移,就是从小的向大的转移,假如它的下一步没有必败态,则它是必败态,若下一步有一个必败态,那它就是必胜态。
代码如下:
#include
#include...
分类:
其他好文 时间:
2014-09-15 21:22:39
阅读次数:
233
题目地址:HDU 2147
又是一道NP状态转换的巴什博弈。这题根据NP状态转移最好画个表格,规律就很直观了。
博弈么,从左下角往前推:
P→到达该点后,下一个人必败。
N→到达该点后,下一个人必胜。
显然,最左下角的点是P。
然后根据经过一步操作可到达必败状态的都是必胜状态,下一步操作都是必胜状态,那么这步操作时必败状态的原则一步步的去画表格就可以了。
...
分类:
其他好文 时间:
2014-09-14 22:11:07
阅读次数:
290
题目地址:HDU 2188
当n=m+1时,由于一次最多只能取m个,所以无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜,所以当一方面对的局势是n%(m+1)=0时,其面临的是必败的局势。所以当n=(m+1)*r+s,(r为任意自然数,s≤m)时,如果先取者要拿走s个物品,如果后取者拿走x(≤m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,...
分类:
其他好文 时间:
2014-09-14 20:48:27
阅读次数:
194
题目地址:HDU 2149
简单的博弈论,跟上道题差不多。只不过再把出价的值输出一下就可以了。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int a[2000];
int m...
分类:
其他好文 时间:
2014-09-14 20:47:47
阅读次数:
220
这题 出的很好的...将nim和bash这2个经典的博弈策略结合在了一起简要说下 上面这2个博弈适用的条件bash:只有一堆物品个数为n 两个人轮流从这堆物品中提取 规定每次至少取一个 最多取m个 谁取完最后一次 就算谁获胜nim:有三堆物品 两个人轮流从任意一堆中取任意数量的物品 最少一个 谁取完...
分类:
其他好文 时间:
2014-09-06 13:38:13
阅读次数:
208
http://blog.csdn.net/acm_cxlove/article/details/78545261:HDOJ1846 Brave Game [找规律] 简单的巴什博弈 #include #include #include using namespace std; int main...
分类:
其他好文 时间:
2014-09-06 09:40:22
阅读次数:
157
巴什博奕(BashGame):一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个,最后取光者得胜;显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1)r+s,(r...
分类:
其他好文 时间:
2014-09-04 13:17:29
阅读次数:
226