博弈论
文章平均质量分 75
u010290366
这个作者很懒,什么都没留下…
展开
-
基础博弈练习题 建树问题
题目链接:基础博弈练习题算法分析主要解释建树问题。对于最后一列来说,如果该列是奇数,谁先走到该列必胜。那么该列往前倒推mmm列是必败的。如果最后一列是偶数,那么谁先走到该列必败。倒数第二列如果是奇数,则谁先走到该列必胜。以此类推。以上是以整个区间[1,n][1, n][1,n]为例来说明的。可以得出,对于全部区间,所有的偶数都是必败点,一部分奇数是必败点,必胜点一定是奇数。但是对于同一个奇数,如果区间右端点不同,则胜败情况需要讨论。假如m=3m=3m=3,最后一列和倒数第二列是奇数,对于[1,n][原创 2022-02-28 20:41:01 · 190 阅读 · 0 评论 -
235. 魔法珠
题目链接:235. 魔法珠算法分析有明显的sg函数特征,因为每堆有数字,可以入sg函数的下标。类似于尼姆博弈的取石子。双人、相同规则、必胜或必败,符合公平组合游戏规则。可以用sg函数。有nnn堆魔法珠,这是有向图游戏和的问题,需要求出来单堆的sg函数,最后异或和即可。所以,需要预处理出[1,1000][1,1000][1,1000]的sg函数。明显地,sg[1]=0sg[1] =0sg[1]=0是边界。对于任意的数量r,假设其约数有t1、t2、t3三个。因为要随机消掉一堆,所以r的后继状态总共有三个原创 2021-03-05 19:29:06 · 142 阅读 · 0 评论 -
P4101 人人尽说江南好
题目链接:P4101 人人尽说江南好算法分析无论怎么操作,最终合并的次数为奇数,则先手胜,否则先手败。先假设一种合并方案,双方尽量合并成mmm,然后再从1开始合并。这样总共的合并次数为:cnt=n/m∗(m−1)+(n%m)?(n%m−1):0cnt = n/m*(m-1)+(n \% m)?(n\% m-1):0cnt=n/m∗(m−1)+(n%m)?(n%m−1):0。我们称此为套路。如果此时cnt为奇数,我们知道先手胜。先手必胜,肯定会按照套路走,如果后手不按照套路出牌呢?讨论下:最大堆石子数原创 2021-03-04 16:36:12 · 383 阅读 · 1 评论 -
P5652 基础博弈练习题
题目链接:P5652 基础博弈练习题算法分析题目很有思考价值。博弈论的题目大多需要绕来绕去。题意中,如果一方走到了iii,那么另一方只能在区间[i,max(i+m,n)][i, max(i+m,n)][i,max(i+m,n)]之间走。假设序列b长度为1,此时该列为偶数的话,先手必胜;否则,先手必败。如果序列b长度为2,很容易想到,假设最后一列长度为奇数,谁先走到最后一列,谁胜;如果最后一列长度为偶数,谁先走到最后一列,谁败。依次类推,我们需要考虑最后一列的奇偶性。用必胜态和必败态进行描述,指的都是原创 2021-03-04 11:57:57 · 175 阅读 · 1 评论 -
SG函数
阅读本篇,先看这篇,里面介绍了博弈论的几种模型,并引出了SG函数。本篇主要对SG函数的应用做说明。四种基本的博弈模型:1.巴什博弈定义: 一堆nnn个物品,两个人轮流从中取出不多于mmm个,最后取光者胜,不能继续取的人输。结论: 若nmod (m+1)!=0n\mod (m+1) != 0nmod(m+1)!=0,则先手必胜;反之,先手必输。2.尼姆博弈定义: nnn堆物品,每堆物品的个数任意,两人轮流取,每次取某堆中不少于1个,最后取完者胜。结论: 将每堆物品的数量全部异或起来,若值为0,原创 2021-03-02 11:10:49 · 446 阅读 · 1 评论