摘要: http://poj.org/problem?id=2960POJ 2960 S-Nim大意:有n堆石子,每堆石子个数已知,两人轮流从中取石子,每次可取的石子数x满足x属于集合S(k) = {s1,s2,s3...sk-1},问先拿者是否有必胜策略?分析:1.可将问题转化为n个子问题,每个子问题分别为: 从一堆x颗石子中取石子,每次可取的石子数为集合S(k)中的一个数2.分析(1)中的每个子问题, 易得:SG(x) = mex(SG[x-s[i]])(0<i<k-1); 3.后面就是SG函数的应用,根据Sprague-Grundy Therem:g(G)=g(G1)^g(G2)^g 阅读全文
posted @ 2011-03-27 20:48 AndreMouche 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 不记得是哪里搞的资料了,先贴上来再说,说我邪恶吧~~~~(>_<)~~~~ SG函数: 给定一个有向无环图和一个起始顶点上的一枚棋子,两名选手交替的将这枚棋子沿有向边进行移动,无法移动者判负。事实上,这个游戏可以认为是所有ImpartialCombinatorialGames的抽象模型。也就是说,任何一个ICG都可以通过把每个局面看成一个顶点,对每个局面和它的子局面连一条有向边来抽象成这个“有向图游戏”。下面我们就在有向无环图的顶点上定义Sprague-Garundy函数。首先定义mex(minimalexcludant)运算,这是施加于一个集合的运算,表示最小的不属于这个集合的非 阅读全文
posted @ 2011-03-27 19:07 AndreMouche 阅读(317) 评论(0) 推荐(0) 编辑
摘要: POJ 1704 Georgia and Bobhttp://poj.org/problem?id=1704大意:Georigia和Bob玩棋子游戏,棋子排成一行,类似于落入x坐标上,最左端为原点0所在位置,棋子i坐落于x轴上的chess[i](chess[i]>0)位置,游戏规则如下:1.每人每次可以且只能移动一个棋子2.每次移动棋子的格子数不限3.只能向左移动棋子4.移动过程中不能覆盖或越过其它棋子5.当谁没有棋子可以移动时,就输了6.两人轮流移动石子,女士优先,Georigia总是先移动7.最左端所在坐标为0,亦即放在1位置的棋子不能再往左移假设两人一样聪明,给定棋子的初始位置,判 阅读全文
posted @ 2011-03-27 10:35 AndreMouche 阅读(1169) 评论(0) 推荐(0) 编辑