博弈
文章平均质量分 84
Freopen
这个作者很懒,什么都没留下…
展开
-
不平等博弈,超现实数
超好资源话说SG普及这么多年了SN还没普及,我寻思也没有什么很大的不同,也就扩个域,最后不还是用double算。。。转载 2020-05-09 15:41:50 · 934 阅读 · 2 评论 -
老魔杖(博弈,不能用SG)
你有aaa个1,bbb个222,ccc个333,ddd个444操作1:把一个数字分成两个正数满足总和不变。操作2:把nnn个nnn删除。不能操作者输。求一个(a,b,c,d)(a,b,c,d)(a,b,c,d)是否先手必胜。a,b,c,d<=1e10000a,b,c,d<=1e10000a,b,c,d<=1e10000这个题不能用SGSGSG函数,因为你把大的数字分了,...原创 2019-12-17 21:29:35 · 233 阅读 · 0 评论 -
威佐夫博弈
威佐夫博弈(Wythoff’s game):有两堆各若干个物品,两个人轮流从任一堆取至少一个或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。必败态:对于第iii个必败态(x,y)(x,y)(x,y)表示第一堆有xxx个石子,第二堆有yyy个石子。xxx为mex(x1,x2,x3.....xi−1,y1,y2...yi−1)mex(x_1,x_2,x_3.....x...原创 2019-08-19 21:26:34 · 140 阅读 · 0 评论 -
CodeForces - 1161F Zigzag Game(稳定婚姻匹配,博弈)
题目这个太神了。。。。。。首先我们知道二分图匹配博弈模型:给你一个二分图每一次可以从X部的点走到Y部的点一开始的人在X如果不能走就输了问你是否有必胜策略。如果存在完美匹配,那么Bob每步都可以沿着一条匹配边走,Alice必须沿着非匹配边走,Bob拥有必胜策略。如果不存在完美匹配,那么对于所有不一定在最大匹配上的(出发)点,Alice都拥有必胜策略:Bob走一条非匹配边,Al...原创 2019-05-09 17:46:27 · 324 阅读 · 0 评论 -
BZOJ 2927: [Poi1999]多边形之战(。。。)
%dalao没有什么好说的。AC Code:#include<cstdio>#include<algorithm>using namespace std;int n,a,b,c;int xl(int a,int b){ return abs(a-b)==1 || (a==0&&b==n-1) || (a==n-1&&b==0);...原创 2019-03-18 15:29:41 · 102 阅读 · 0 评论 -
BZOJ 4147: [AMPPZ2014]Euclidean Nim(复杂的分类讨论与简单的博弈论)
大佬 %%%对于三者的关系疯狂分类讨论即可,还需要一点点灵性的结论。AC Code:#include<bits/stdc++.h>using namespace std;int n,p,q;int main(){ int T; for(scanf("%d",&T);T--;){ scanf("%d%d%d",&p,&q,&n); ...原创 2019-03-18 15:12:00 · 165 阅读 · 0 评论 -
BZOJ 1982: [Spoj 2021]Moving Pebbles (博弈,找平衡状态)
两个人玩游戏. 每次任选一堆,首先拿掉至少一个石头,然后移动任意个石子到任意堆中. 谁不能移动了,谁就输了.。n&lt;=105n&lt;=10^5n<=105对于状态(n,A1,A2……An),不妨设A1<=A2<=……<=An。平衡状态:n为偶数,且A1=A2,A3=A4……An-1=An。正确性证明:1.失败状态属于平衡状态。2.平衡状态一...转载 2019-03-18 14:46:20 · 142 阅读 · 0 评论 -
二维Nim游戏
占坑https://www.cnblogs.com/zjp-shadow/p/10507030.html转载 2019-03-25 10:55:36 · 388 阅读 · 0 评论 -
BZOJ 3895: 取石子(记忆化搜索)
题目这个题。先用常识把大小大于1和等于1的区别对待,发现大于1的可以看作就是1堆。然后记忆化搜索。。。。。终于有一个卡数据范围的博弈了。AC Code:#include<bits/stdc++.h>using namespace std;int f[55][50005];int dfs(int c1,int sc){ if(f[c1][sc]!=-1) retu...原创 2019-03-18 12:34:55 · 192 阅读 · 0 评论 -
BZOJ 1022 [SHOI2008]小约翰的游戏John 博弈论(Anti-Nim)
题目大佬博客关于大佬博客中题目2的解法。有几个需要注意的地方。1:T1其实是不存在的。2:S2可转为T2的证明应该是:因为无法将S2变为T0,T1又不存在,又因为一定可以变成T,所以可变为T2(非构造性证明),并没有什么而且不会一次取完整堆的奇怪结论。完。AC Code:#include<bits/stdc++.h>using namespace std;...原创 2019-03-18 10:24:52 · 154 阅读 · 0 评论 -
LG P3185 [HNOI2007]分裂游戏(SG函数)
题目注意到每次只会操作一个石子,那么石子之间是独立的,那么我们把一个石子看作一个游戏,距离n点的距离d表示这个游戏相当于Nim游戏中d个石子的石堆,一次操作之后可以分裂为两个石子数更小的石堆。直接算SG值就行。注意:SG函数值范围和方案数有关,与状态数无关!!!!!!!!数组开大一点或特殊处理。AC Code:#include<bits/stdc++.h>#define ...原创 2019-03-18 09:51:22 · 174 阅读 · 0 评论 -
博弈论总结
链中链a. 穆尔(E.N.Moore)游戏这个游戏与Nim游戏及其类似,唯一不同的是参赛者每一步可以从任意几堆(不超过特定的数k)中取出筹码,如果把数字x,y…换写成二进制数而不作进位的加法时,和的每一个数位上的数码都是k+1的倍数,则此组合(x,y…)为安全的。如果把 的规则修改为取走最后一个筹码是输,那么安全组合不边,除了当所有的堆只有一个筹码时,堆得数目比k+1的一倍多一。如果把 再作...原创 2019-03-16 10:56:26 · 416 阅读 · 0 评论 -
1299: [LLH邀请赛]巧克力棒(SG函数乱搞)
题目我是个十分擅长于背公式的选手。直接f[sta]f[sta]f[sta]表示stastasta集合的未被拿出。f[sta]=mex({0...∞}−⋃rsta⊂staf[rsta]&amp;nbsp;xor&amp;nbsp;sumxor[sta−rsta])f[sta] = mex(\{0...\infty\}-\bigcup_{rsta \subset sta} f[rsta]\ xor\ sumx...原创 2019-03-16 10:50:32 · 210 阅读 · 0 评论 -
BZOJ 2463: [中山市选2009]谁能赢呢?(博弈论棋盘模型)
题目棋盘上,我们可以把格子黑白染色,看做一个二分图,如果存在完美匹配,那么Bob每步都可以沿着一条匹配边走,Alice必须沿着非匹配边走,Bob拥有必胜策略。如果不存在完美匹配,那么对于所有不一定在最大匹配上的(出发)点,Alice都拥有必胜策略:Bob走一条非匹配边,Alice走一条匹配边,否则,我们从原理上分析一波,如果Alice赢,一定是Bob一开始走了可能为非匹配边的边,那么Bo...原创 2019-03-16 10:12:04 · 223 阅读 · 0 评论 -
1874: [BeiJing2009 WinterCamp]取石子游戏(SG函数基操)
题目我发现博弈论的难点在于读不懂题。大多数出题人写的都不够细致,没避开误会。比如说这句话:每个人每次可以从一堆石子中取出若干个石子,每次取石子的个数有限制有限制,如此浅薄又苍白无力的解释。是第i次取石子都只能取1~Bi个还是有什么其他的玩意。原来就是只能取那几个数字大小的石子数。你逗我。SG函数基操,求mexAC Code:#include<cstdio>...原创 2019-03-16 09:34:07 · 170 阅读 · 0 评论 -
BZOJ 1115: [POI2009]石子游戏Kam(阶梯Nim游戏)
题目阶梯NimAC Code:#include<cstdio>int a[1005];int main(){ int T,n; char ANS[2][5]={"TAK","NIE"}; for(scanf("%d",&T);T--;){ scanf("%d",&n); for(int i=n;i>=1;i--) scanf(&qu原创 2019-03-15 22:59:43 · 981 阅读 · 0 评论 -
LG P3235 [HNOI2014]江南乐(SG函数)
题目首先这个题SG函数很明显。枚举分为多少堆然后对子状态的SG函数求mex就行。但是直接枚举是O(n2)O(n^2)O(n2)可以用整除分块:n个石子分成m堆:有nnn%mmm个大小为⌊nm⌋+1\lfloor\frac nm\rfloor+1⌊mn⌋+1的石堆。m−nm-nm−n%mmm个大小为⌊nm⌋\lfloor\frac nm\rfloor⌊mn⌋的石堆。现在只有r=n...原创 2019-03-15 21:44:46 · 175 阅读 · 0 评论 -
SG函数
有些(很多)博弈问题可以转换为Nim游戏SG[某个游戏+状态]的值的意义就是将这个游戏改为Nim游戏中的一堆石子,石子的个数。只有一堆石子的Nim游戏显然石子个数为0是输,其他都是赢多堆石子的就把石子个数xor。那么他们之间的关系就是:Nim游戏中先手胜负与石子xor和相关SG函数能将一个游戏转换为一堆石子...原创 2018-02-26 22:18:31 · 239 阅读 · 0 评论 -
雅礼集训 1.2 取石子游戏
取石子(stone)【题目描述】有 n 堆石子,第 i 堆有 xi 个。Alice 和 Bob 轮流取石子(先后手未定),Alice 每次从一堆中取走 a 个,Bob每次从一堆中取走 b 个,无法操作者输。不难发现只会有四种情况:Alice 必胜;Bob 必胜;先手必胜;后手必胜。你需要选定若干堆石子(共有 2^n 种方案),Alice 和 Bob 只能在你选出的堆中取,问以上四种情况对应的方案数...原创 2018-01-17 16:10:17 · 1878 阅读 · 0 评论