![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈
文章平均质量分 62
new_wu
这个作者很懒,什么都没留下…
展开
-
基础博弈—Nim博弈
重点结论:对于一个Nim游戏的局面(a1,a2,...,an),它是P-position当且仅当a1^a2^...^an=0,其中^表示位异或(xor)运算。Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(Combinatorial Games)的一种,准确来说,属于“Impart转载 2012-03-26 00:19:13 · 398 阅读 · 0 评论 -
poj 2425 A Chess Game (sg函数)
【题目大意】:给出一幅有向图,然后告诉你上面有m个棋子,游戏者轮流操作,走到不能走的人输。【解题思路】:sg函数...棋子的每一次移动都是它的后继状态也就是 sg(x)=mex(SG[et[i].v])et[i].v为邻接表表示与其相连的点。 每个棋子的移动视为一个子问题,将所有子问题^之后就是答案。【代码】:#include #include原创 2012-03-26 12:50:59 · 610 阅读 · 0 评论 -
hdoj 4203 Doubloon Game(博弈+找规律)
【题目大意】:给出n个硬币,每次可以取走k的幂,问先手取多少个可以确保获胜,不能则输出0【解题思路】:Nim博弈,sg函数变形,不过太大, sg函数做不了....推小数据,找规律。【代码】:#include #include #include #include #include #include #include #include #include原创 2012-04-03 23:10:11 · 985 阅读 · 0 评论 -
poj 1740 A New Stone Game(博弈)
【题目大意】:有N堆石头,每堆石头数目在1到100之间,最多有10堆.两人分别取走石头.取石头的规则是:每次只能从1堆中取,每次取走至少1个.取过后还可以把这堆的石头任意分配到其它堆上,当然也可以不分配。问给定这些石头堆的情况,两人轮流取,谁先取完谁胜利,求谁胜利1为先取,0为后取。【解题思路】: 1)只有一堆时 先手必胜 。 2)有两堆时 若两堆相等原创 2012-03-19 20:50:37 · 420 阅读 · 0 评论 -
poj 2311 Cutting Game(sg函数)
【题目大意】:给出一个n*m的矩阵,两个人轮流切割...直到一方不能切割为止,问先手的胜负情况【解题思路】:原本看完题目觉得很简单,直接裸敲了个dfs~~结果无情的TLE...然后想想看看sg函数,然后发现貌似自己有点明白了。 这道题的关键在于把问题转化为nim博弈...换句话话说一切博弈皆nim...原创 2012-03-26 00:32:06 · 536 阅读 · 0 评论 -
poj 2960 S-Nim(sg函数)
【题目大意】:给出一个集合S,然后给出n堆石子。每次可以从石子里取走S集合里面的数。问先手的胜负关系。【解题思路】:Nim博弈的变形。加上了限制,跟距sg函数,我们可以知道。ans=sg(a)^sg(b)^sg(c)...(a,b,c为子问题,即每堆石子)。另外...sg(a)=mex(SG[a-s[i]])(0【代码】:#include #include #i原创 2012-03-26 11:09:52 · 496 阅读 · 0 评论 -
poj 1704 Georgia and Bob(博弈)
【题目大意】:一个1*M的棋盘上有N个棋子,初始位置一定,两人轮流操作,每次移动一枚棋子,要求只能向左移且至少移动一格,而且不能到达或经过以前有棋子的格子,谁无法移动棋子就算输。【解题思路】:1)按照位置进行排序,然后将每两个分成一组 2)接下来,分下面两种情况讨论: 1、先手移动任意组中的左边的一个,那么对原创 2012-03-19 20:52:09 · 428 阅读 · 0 评论 -
poj 1067 取石子游戏(博弈)
【题目大意】:有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。最后把石子全部取完者为胜者。现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。(1胜,0负)【解题思路】:威佐夫博弈(Wythoff Game)原创 2012-03-19 20:46:25 · 563 阅读 · 0 评论 -
基础博弈
博弈是信息学和数学试题中常会出现的一种类型,算法灵活多变是其最大特点,而其中有一类试题更是完全无法用常见的博弈树来进行解答。 寻找必败态即为针对此类试题给出一种解题思路。 此类问题一般有如下特点: 1、博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。转载 2012-03-26 00:16:06 · 434 阅读 · 0 评论 -
Sprague-Grundy函数
上一期的文章里我们仔细研究了Nim游戏,并且了解了找出必胜策略的方法。但如果把Nim的规则略加改变,你还能很快找出必胜策略吗?比如说:有n堆石子,每次可以从第1堆石子里取1颗、2颗或3颗,可以从第2堆石子里取奇数颗,可以从第3堆及以后石子里取任意颗……这时看上去问题复杂了很多,但相信你如果掌握了本节的内容,类似的千变万化的问题都是不成问题的。现在我们来研究一个看上去似乎更为一般的游戏:给定转载 2012-03-26 00:18:07 · 480 阅读 · 0 评论 -
poj 2505 A multiplication game(博弈)
【题目大意】:给出一个数n...两个人轮流游戏,每次可以给p=1乘上2~9之间的任意一个数,问谁先达到n。【解题思路】:如果n的范围在2~9之间...先手胜,10~18之间后手胜....19~162之间...是由后手必胜态(10~18)转移过来的必败态(因为在10~18的情况下,是我要赢,我势必拿最大)...163~324是由先手必胜态(19~162)转移过来的后手必胜态...以此类推原创 2012-03-26 11:36:34 · 994 阅读 · 0 评论