![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论
文章平均质量分 53
nlj1999
这个作者很懒,什么都没留下…
展开
-
BZOJ 1188: [HNOI2007]分裂游戏
题目好熟悉(⊙o⊙) 想起来是07年的论文题 然后不会做┑( ̄Д  ̄)┍ 遂去翻论文 照着论文的放法乱搞出来了 #include #include #include using namespace std; bool ex[100]; int sg[30]; void build(){ sg[0]=0; for(int i=1;i<21;i++){ memset(ex,0,siz原创 2016-03-22 14:49:54 · 262 阅读 · 0 评论 -
POJ 3317 Stake Your Claim
有了之前的基础,3进制DP根本不在话下啊,半个小时就搞定了(本来就是水题好不好) 极大极小过程+记忆化搜索 话说第一次接触博弈论,还有点紧张(紧张个P啊连Alpha-Beta剪枝都没有的水题) 然后大概看了下极大极小过程,发现这题根本用不到什么啊TAT 顺便吐槽数据好水63MS就过了,竟然rank27,不科学。 #include #include #include using names原创 2016-02-28 19:19:47 · 491 阅读 · 0 评论 -
poj 1085 Triangle War
人生第一道真正意义上的极大极小过程+alphabeta剪枝。 其实一开始让我写alphabeta剪枝我是拒绝的,于是我写了个记忆化搜索,TLE了。。。。。。。 哦然后优化了一下,300多MS A了 但是不爽啊 说好的博弈论呢 当然要用正解了 于是学了下alphabeta剪枝,其实挺简单的,就是alpha为已知max游戏者的下界,beta为min游戏者的上界,如果beta 假设在博弈树原创 2016-02-29 11:02:54 · 669 阅读 · 0 评论 -
hdu 1907 John
anti-SG裸题 终于刷到09年了\(^o^)/ 话说SJ定理这个名字怎么这么喜感呢。 #include #include #include using namespace std; int a[50],n; int sg(){ int ans=0; for(int i=1;i<=n;i++) ans^=a[i]; return ans; } bool check1(){ for原创 2016-03-24 15:20:42 · 262 阅读 · 0 评论 -
HDU 3595 GG and MM
首先很容易得出来对于单组游戏先拿到p/q>1的那个人赢,因为他可以控制奇偶。 但是这是Every-SG游戏。 然后就只好看别人的题解了QAQ 感觉好像很厉害的样子,大概就是他要改变局面就要使步数多一步,然后就可以套论文里的结论了。 #include #include #include using namespace std; int f[105]; int calc(int x,int y原创 2016-03-24 16:23:43 · 336 阅读 · 0 评论 -
HDU 3094 A tree game
树上删边游戏 #include #include #include using namespace std; const int N=100000+5; struct Edge{int to,next;}e[N<<1]; int head[N],cnt; void ins(int u,int v){ e[++cnt]=(Edge){v,head[u]};head[u]=cnt; } int s原创 2016-03-24 16:52:30 · 286 阅读 · 0 评论 -
POJ 3710 Christmas Game
第一眼看成仙人掌上博弈了,好口怕。 然后发现环只会作为基树的叶子出现,然后通过讨论(看论文)发现环是可以缩掉的。 所以就变成树上博弈了。。。。。 听说有重边???那不应该是环吗 (⊙ˍ⊙) #include #include #include using namespace std; const int N=100+5; struct Edge{int to,next;}e[N<<1];原创 2016-03-24 17:50:05 · 351 阅读 · 0 评论 -
BZOJ 3576: [Hnoi2014]江南乐
首先把游戏拆解一下会发现每一堆石子是一个游戏 所以是Multi-SG,总体sg值是每个游戏的sg值的异或和 考虑单个游戏,数量为n的一堆石子的后继状态是拆完之后的石子的sg值的异或和 于是结合SG定理就得到了一个优秀的m^2算法(优秀个毛线啊)(m为石子个数的最大值) 然后我们考虑一个比较特殊的情况 显然把n拆成m堆会出现k=n/m和k+1两种情况,堆数分别是k1=m-k2,k2=n%m原创 2016-04-12 11:13:30 · 750 阅读 · 0 评论