关闭

[Nim] SRM 304 div1 TheXGame

翻译题解首先给出结论 把一段看做一堆石子 可以做到跟nim游戏等价具体 我们需要归纳证明一个结论 当前current_multiplier为 cc ,石子总数为 nn ,若异或和为 00 那么后手将以至少 n2c{n\over 2}c 的净得分获胜当游戏只剩最后两步的时候,两堆石子分别是n2n\over 2,那么后手会赢 n2c×2−n2c=n2c{n\over 2}c\times 2-{n\o...
阅读(94) 评论(0)

[广义后缀自动机 SG值] 51Nod 1869 那些年,我们一起讲的故事

简直 在众人的帮助下理解了一个假题意 看完题解知道真题意 大概是每次加一个字符 这个串仍然要是Trie树的子串 直接建SAM 然后求SG值 不超过度数+1 也就是27 然后先手必胜 两边SG不同 那么按字典序数一数就好了#include #include #include #include #include<cass...
阅读(181) 评论(0)

[博弈 杂题] Codeforces 794E Round #414 E. Choosing Carrot

这个题 首先我们要知道结论If n is even, the answer is while if n ≥ 3 is odd, the answer is . (If n = 1 then the answer is obviously a1.) 为什么呢 证明看题解然后可以动kk步就是所有长为n−kn-k子区间的答案的最大值#include #include #...
阅读(444) 评论(0)

[博弈论] Codeforces Gym 101190 NEERC 16 G. Game on Graph

首先确定平局 当Bob先手的状态的一个后继被确定不是平局, 这个状态不是平局; 当Alice先手的某个状态的所有后继都不是平局, 这个状态不是平局. 初始所有出度为0的点不是平局,类似拓扑排序搜索到的状态都不是平局, 剩下的是平局. 然后确定不是平局状态下输赢 类似咯 后手都赢先手就输 后手能输先手就赢 但是这样能把所有状态推出来吗? 不能 因为Bob一旦能不平局宁愿输都不平局 比如这...
阅读(273) 评论(0)

[SG函数 Trie树合并] SPOJ COT3 Combat on a tree

开始搬神犇的题解 题意 给定一棵NN个点的树,11号点为根,每个节点是白色或者黑色。 双方轮流操作,每次选择一个白色节点,将从这个点到根的路径上的点全部染成黑色。 问先手是否必胜,以及第一步可选节点有哪些。 N<=100000N<=100000 分析 首先是博弈方面的分析。 令SG[x]SG[x]为,只考虑以xx为根的子树时的SGSG值。...
阅读(261) 评论(0)

[二分图博弈] BZOJ 1443 [JSOI2009]游戏Game & BZOJ 2437 [Noi2011]兔兔与蛋蛋

二分图博弈考虑这样一类博弈问题 博弈状态可分为两类 即状态空间可分为两个集合 对应二分图X集和Y集 任意合法的决策使状态从一类跳转到另一类 可以用二分图描述 不可以转移至已访问的状态 无法转移者判负。 问题转化从二分图指定起点开始轮流沿着边移动 不可重复访问点 无法移动判负。不妨设起点s∈Xs\in X 考虑该二分图的某个最大匹配 若ss不属于某个最大匹配 则先手所转移到的点y∈Yy\in Y一定...
阅读(121) 评论(0)

[K倍动态减法问题] HDU 2486 & HDU2580 & POJ3922 a simple stone game

这就是斐波那契博弈的加强版 对于某些特定的KK 我们有结论 K=1K=1 后手必胜当且仅当nn是22的次幂 先手的策略是取lowbit(n)lowbit(n) K=2K=2 后手必胜当且仅当nn是斐波那契数 先手的策略是取nn的斐波那契拆分中最小的数 这道题 我们仿照斐波那契博弈的构造方法 构造一个数列ana_n 将每个自然数都表示成ana_n中不连续的几项的和 f1+f2+⋯+fnf_1...
阅读(151) 评论(0)

[Anti-Nim Anti-SG SJ定理] BZOJ 1022 [SHOI2008]小约翰的游戏John

我们直接分析吧 Nim博弈中如果规定最后取光者输,情况是怎样的? 初看起来问题要复杂很多(因为不能主动拿了,而要“躲着”拿,以免拿到最后一个物品),但对于Nim游戏来说,几乎是一样的:首先按照普通规则一样的策略进行,直到恰好有一个物品数大于1的堆x。在这样的情况下,只需要把堆x中的物品拿得只剩1个物品或者拿完,让对手面临奇数堆物品,这奇数堆物品每堆恰好1个物品。这样的状态显然是必败的。由于...
阅读(198) 评论(0)

[Every-SG 找规律] BZOJ 1393 [Ceoi2008]knights

题目 还是看官网吧 我们先分析单个游戏 nn很大 我们打表找规律 发现很有规律 最后一行一列要特判 写出来就是这样啦inline int SG(int x,int y){ if ((x%4==1||x%4==2)&&(y%4==1||y%4==2)) return 0; if (n%4==1 && ((x==n&&y!=n-1)||(y==n&&x!=n-1))) retur...
阅读(186) 评论(0)

[海盗分金] HDU 1538 A Puzzle for Pirates

久闻大名的海盗分金问题 详见HDU 1538 A Puzzle for Pirates(经典的海盗分金推理)#include #include #include #define read(x) scanf("%d",&(x)) using namespace std;int fac[]={1,2,4,8,16,32,64,128,256,51...
阅读(137) 评论(0)

[Multi-SG] POJ 3537 Crosses and Crosses & BZOJ 2940 [Poi2000]条纹

Multi-SG模型是指一个单一游戏又可以分裂成多个游戏 实际上并没有改变SG函数的实质 单一游戏的SG值是 它能分裂成的多个游戏的nim和 的mex 记忆化搜索下就好了POJ 3537画叉叉:两人在1*N的格子纸上轮流打叉,最先打出连续3个叉者获胜,问必胜者是谁?#include #include #include #include<c...
阅读(136) 评论(0)

[阶梯博弈] POJ 1704 Georgia and Bob

这个对于两两之间的距离看做一堆石子 这就相当于是一个阶梯博弈 对于阶梯博弈 相当于几个奇数堆的石子在做Nim 因为把偶数堆移到奇数堆 那可以再移到偶数堆 对局面不造成影响#include #include #include using namespace std;const int N=1005; int n,a[N];int main(...
阅读(111) 评论(0)

[删边游戏] POJ 3710 Christmas Game

详见组合游戏略述——浅谈SG游戏的若干拓展及变形 贾志豪 可证 叶子节点的 SG 值为 0 中间节点的 SG 值为它的所有子节点的 SG 值加 1 后的异或和对于这道题 通过分析发现了如下奇妙的性质: 对于长度为奇数的环,去掉其中任意一个边之后,剩下的 两个链长度同奇偶,抑或之后的 SG 值不可能为奇数,所 以它的 SG 值为 1 对于长度为偶数的环,去掉其中任意一个边之后,剩下的...
阅读(390) 评论(0)

[巴什博弈] HDU 2149 Public Sale & HDU 1847 Good Luck in CET-4 Everybody! & HDU 4764 Stone

2149简单的巴什博弈 需要抢占k+1k+1的倍数#include using namespace std;int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); int m,n; while (~scanf("%d%d",&m,&n)){ if (m<=n){ for...
阅读(184) 评论(0)

[斐波那契博弈] BZOJ 2275 [Coci2010]HRPA & HDU 2516 取石子游戏

证明时用到的斐波那契数列的性质#include #include #include using namespace std; typedef long long ll;ll n,f[100];int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); sca...
阅读(208) 评论(0)

[博弈 图论] BZOJ 2922 [Poi1998]Chase

%%% BYVOID  注意到题上的一个看似无关紧要的条件,“不包括三角形”,这是一个突破口。由这个条件,我们可以证明,如果一个图不存在度数为1的顶点,B永远也追不上A。也就是B想追上A,必须让A“走投无路”。 于是我们首先把原图处理一下,求出对于A来说的安全区。对于A来说的安全区,也就是一个没有度为1的顶点的最大子图。我们把这个安全区求出,并标记上。 A要想不被B抓住,则一...
阅读(165) 评论(0)

[博弈] BZOJ 2927 [Poi1999]多边形之战 Polygons

设与R1相邻的三角形个数为k,那么先手胜当且仅当      (k =1)  or  (n-k-3)与k奇偶性不同  即 (k=1)  or  n为偶数 写法略丑 嘿嘿嘿嘿 #include #include #include using namespace std; const int N=50005; int n,K; int a[N][3],b[N],c[N];...
阅读(166) 评论(0)

[威佐夫博弈 黄金分割比 数学技巧] POJ 1067 取石子游戏 & HDU 1527 取石子游戏

论文:杨思雨--美,无处不在——浅谈“黄金分割”和信息学的联系 以下摘录证明 #include #include #include #include using namespace std; const double phi=(1+sqrt(5.0))/2.0; int main(){ freopen("t.in","r",std...
阅读(410) 评论(0)

[数论 博弈论] BZOJ 4147 [AMPPZ2014]Euclidean Nim

大搬运术:http://blog.csdn.net/PoPoQQQ/article/details/46549901 #include #include #include using namespace std; inline char nc() { static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)...
阅读(152) 评论(0)
    个人资料
    • 访问:264080次
    • 积分:11943
    • 等级:
    • 排名:第1328名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:50条
    最新评论