博弈论基本算法
_Shmily
这个作者很懒,什么都没留下…
展开
-
P2148 [SDOI2009]E&D (Ferguson游戏的sg函数)
题目链接题面:题解:每一组可以看作一个Ferguson游戏。重点在怎么求Ferguson游戏的sg值上。代码:#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<bitset>#include<algorithm>#define ll long long#define pr make_pair#define p原创 2020-08-25 08:04:17 · 147 阅读 · 0 评论 -
探寻翻硬币博弈
翻硬币游戏一般的翻硬币游戏的规则是这样的:N 枚硬币排成一排,有的正面朝上,有的反面朝上。我们从左开始对硬币按1 到N 编号。第一,游戏者根据某些约束翻硬币,但他所翻动的硬币中,最右边那个硬币的必须是从正面翻到反面。例如,只能翻3个硬币的情况,那么第三个硬币必须是从正面翻到反面。如果局面是正正反,那就不能翻硬币了,因为第三个是反的。第二,谁不能翻谁输。有这样的结论:局面的SG 值为局面中...原创 2020-08-24 21:50:12 · 211 阅读 · 0 评论 -
中国石油大学ACM俱乐部开放训练赛 问题 H: qiqi and sciorz K倍博弈:
一天,qiqi和sciorz很无聊,他们又玩起来更无聊的取石子游戏,游戏规则是这样的:有一堆n个石子,qiqi先取,每次最少取一个,第一次取的时候最多取n-1个,之后每次不能超过上一次的k倍,取得最后一个石子的为胜利,也就是说不能操作的为败.然而sciorz早已洞穿了一切,他已经知道了谁会胜利,并且他急着去聊妹子,于是他开始催促qiqi快点开始,但是qiqi并不会玩,你能帮帮他吗?输入一行...原创 2020-08-24 21:43:37 · 195 阅读 · 0 评论 -
博弈例题、SG函数应用
一、取石子:有1堆n个的石子,每次只能取{ 1, 3, 4 }个石子,先取完石子者胜利,那么各个数的SG值为多少?SG[0]=0,f[]={1,3,4},x=1 时,可以取走1 - f{1}个石子,剩余{0}个,所以 SG[1] = mex{ SG[0] }= mex{0} = 1;x=2 时,可以取走2 - f{1}个石子,剩余{1}个,所以 SG[2] = mex{ SG[1] }= ...原创 2020-08-24 18:05:51 · 330 阅读 · 0 评论 -
P/N理论
一、P/N分析法: P点:即 必败点,某玩家位于此点,只要对方无失误,则必败。 N点:即 必胜点,某晚接位于此点,只要自己无失误,则必胜。 必败态:一定输。 必胜态:一定赢。 奇异局势:必败态局势。 非奇异局势:必胜态局势。P/N点满足三个定理:(1) 所有终结点都是必败点P(游戏中,轮到某玩家拿牌,还剩0张牌的时候,此人就输了,因为无牌可取)。(2)所有一步能走到必...原创 2020-08-24 17:58:45 · 2266 阅读 · 0 评论 -
SG函数
一、公平组合游戏ICG: 若一个游戏满足: --------由两名玩家交替行动 --------在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关 --------不能行动的玩家判负 则称该游戏为一个公平组合游戏。二、有向图游戏: 给定一个有向无环图,图中有一个唯一的起点,在起点上放有一枚棋子。两名玩家交替地把这枚棋子沿有向边进行移动,每次可以移动一步,无法移动着...原创 2020-08-24 17:58:31 · 504 阅读 · 0 评论 -
chomp!游戏
一、chomp!游戏:1。 有一个n * m的棋盘,棋盘的每一个格子用(x,y)表示,最左上角是(1,1) 每次可以拿走一个方格,并拿走该方格右边与下边的所有方格,谁拿到(1,1),谁败。 除了n=m=1先手败,其余先手胜。 三维的除了(1,1,1)先手败,其余的先手胜。2。 桌子上有n个数字,1–n。 两人轮流选择一个桌子上的数x,然后将x与x的约数都拿走,拿走最后一...原创 2020-08-24 17:58:04 · 896 阅读 · 0 评论 -
Ferguson游戏
一、Ferguson游戏: 有两个盒子,一个装有m颗糖,一个装有n颗糖,表示为(m,n) 每次清空一个盒子,将另一个盒子里的糖转移一些过来,并保证两个盒子至少各有一颗糖 最后进行转移糖者获胜,无法转移糖者败。 m,n都为奇数,先手败 m,n至少一个为偶数,先手胜。...原创 2020-08-24 17:57:41 · 255 阅读 · 0 评论 -
斐波那契博弈
一、斐波那契博弈: 有一堆物品,两人轮流取物品,先手最少取一个,至多无上限,但是不能把物品取完,之后每次取的物品数不能超过上一次取的物品数的二倍且至少为1件,取走最后一件物品的人获胜。 先手胜当且仅当n不是斐波那契数(n为物品数)。...原创 2020-08-24 17:57:26 · 287 阅读 · 1 评论 -
威佐夫博弈
一、威佐夫博弈:有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。若两堆物品的初始值为(x,y),且x<y。令z=y-x;w=(int)((sqrt(5)+1)/2 * z)若w==x则先手必败,否则先手必胜。二、一些性质:1。第k个必败状态时((sqrt(5)+1)/2 * k , (sqrt(5)+...原创 2020-08-24 22:27:21 · 818 阅读 · 0 评论 -
尼姆博弈
一、尼姆博弈: 有任意堆物品,每堆物品的个数是任意的,双方轮流从中取出物品,每次只能从一堆物品中取出部分或全部物品,最少取一件,取到最后一件物品的人获胜。 把每堆物品全部异或起来,如果最终得到的值为0,则先手必败,否则先手必胜。 int flag=0;二、anti-nim: 取到最后一件物品的人输。先手胜当且仅当: 所有堆石子数都为1且游戏的异或值为0(即有偶数个独单堆(每...原创 2020-08-24 22:27:07 · 2032 阅读 · 0 评论 -
巴什博弈
一、巴什博弈:巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物, 规定每次至少取一个,最多取m个。最后取光者得胜。if(n%(m+1)!=0) 先手赢else 后手赢二、例题:1。Tang和Jiang轮流写数字,Tang先写,每次写的数x满足1≤x≤k,Jiang每次写的数y满足1≤y-x≤k,谁先写到不小于n的数就算输。r=(n-1)%(k+1)r=0时 Jiang...原创 2020-08-24 17:56:54 · 10481 阅读 · 0 评论