![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法[博弈]
丶singularity
今夕复何夕
展开
-
POJ 2960 S-Nim <SG函数>
题目链接刚接触SG函数不久,再次被算法的巧妙震撼到,知道mex、SG函数这道题就是水题了。第一次在sublime text上编译代码,折腾了好久啊。。。不过最终结果还是令人满意的,现在我的sublime text 超好看啊!附图一张~ 代码:#include <iostream>#include <algorithm>#include <cstring>using namespace std原创 2017-07-30 17:08:44 · 270 阅读 · 0 评论 -
POJ 1704 Georgia and Bob <Nim变形>
题目链接又是一道水题啊,不过解法还是挺巧妙的。将所有棋子从后往前两两看做一对(最后若余下一个棋子,将其与棋盘左边界看做一对),那么每对棋子之间的空格便可以当作Nim游戏中的一堆石子了。Nim游戏中每堆石子只会减少不会增多,虽然每对棋子之间的空格可以增加,可若是前一个玩家移动的是某对棋子中的前一个,那么当前玩家总可以(也应该)移动后一个棋子相同步数,以保持上一轮的“局面”(作为必胜者显然要保持局面,而原创 2017-07-30 18:23:04 · 181 阅读 · 0 评论 -
POJ 2068 Nim <博弈dp>
题目链接令dp[id][remain]:轮到编号为id的人时还剩下remain颗石子的状态dp[id][remain]:轮到编号为id的人时还剩下remain颗石子的状态,那么dfs记忆化搜索就好了。代码:#include <iostream>#include <cstring>#include <algorithm>using namespace std;const int S=1<<13;原创 2017-07-30 20:55:51 · 272 阅读 · 1 评论 -
POJ 2484 A Funny Game <简单博弈>
题目链接分析: 显然当n<3n<3时,AliceAlice必胜。当n≥3n\ge 3时,根据对称性,后手总可以根据先手取coin的方法决定自己取coin的方法,所以BobBob必胜,BobBob的具体策略如下:将coin编号为c1,c2,…,cn−1c_1,c_2,\dots,c_{n-1}。当nn为奇数时,令t=n−12t=\frac{n-1}{2}。若第一步先手取ckc_k,则后手第一步取c(原创 2017-07-27 12:31:50 · 176 阅读 · 0 评论 -
POJ 1067 取石子游戏 <威佐夫博弈>
题目链接这道题网上的题解给出的证明都不太完善也不是很清楚,故自己整理了一份详细题解,放在知乎了,链接。原创 2017-07-27 12:41:01 · 217 阅读 · 0 评论 -
POJ 3048 John <Anti-SG(SJ定理)>
题目链接分析:Anti-SG游戏。直接套SJ定理就好了(参见贾志豪论文《组合游戏略述——浅谈SG游戏的若干拓展即变形》Chapter.2) 代码: c++#include <iostream>#include <algorithm>using namespace std;int t,n,a;int main(){ ios::sync_with_stdio(false); ci原创 2017-09-16 18:24:33 · 204 阅读 · 0 评论 -
POJ 2348 Euclid's Game <博弈>
题目链接分析: 比较有意思的一道题。 定义局面为一个二元数(x,y)(x,y),可以推出以下结论: 1)(x+y,y)(x+y,y)与(x,y)(x,y)必有一个为必胜态而另一个为必败态,因为(x+y,y)(x+y,y)可以到达(x,y)(x,y) 2)若x≥2yx\ge 2y则(x,y)(x,y)是必胜态,这是因为它可以到达1)中的两种情况之一(即后继状态存在必败态) 3)若x=yx=y原创 2017-09-16 21:28:21 · 136 阅读 · 0 评论