![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论
qkoqhh
这个作者很懒,什么都没留下…
展开
-
hdu4388(打表)
博弈论这种题打表是最吼的啦!!按照sg值的定义暴力打表找规律,发现对任意一堆数量为n石子,当n用二进制表示时,1的个数为奇,sg(n)=0,1的个数为偶,sg(n)=1然后变成进制转换直接异或即可。。 所以,得到的结论就是。。博弈不会做没关系。。会打表就行了。。。/** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ...原创 2018-05-26 11:25:28 · 508 阅读 · 0 评论 -
hiho1172(Turning Turtles)
http://hihocoder.com/problemset/problem/1173题解讲得非常清楚了。。就是翻硬币类问题直接把他们的坐标当成sg值就可以了。。 /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > ...原创 2018-10-21 13:38:03 · 225 阅读 · 0 评论 -
bzoj2688(概率DP+green博弈)
这个很显然需要用到green博弈的结论,然后接下来就是确定树的形态了。。设d[i][j]为大小为i的二叉树,sg值为j的方案然后从枚举左子树大小,再把2棵子树对应的sg的情况合并一下即可。。复杂度O(n^4)。。好像比较危险。 。不过经过多次求和之后有1/10的常数,所以实际跑起来挺快的。。n棵子树sg值的合并和上面同理。。思路是很清晰的。。然而因为精度问题调了半天。。主要是方案数...原创 2018-10-19 21:13:27 · 243 阅读 · 0 评论 -
hdu3389(阶梯博弈)
这个题有点意思。。首先有2个条件的限制,分别是对2和3取膜比较难统一,所以直接对一个数%6讨论然后可以发现,0和3之间相互转移,1和2之间相互转移,4和5之间相互转移,这样就可以把这些数对当成奇偶来处理,然后可以转化成阶梯博弈了。。然后最先出现的模数是1,3,4,所以1,3,4为偶,2,5,6为奇,因此对所有2,5,6的石子堆做nim就可以了。。 /** * ...原创 2018-10-09 16:06:01 · 183 阅读 · 0 评论 -
poj1704(阶梯博弈/nim博弈)
漏了个阶梯博弈没学,前来补补。。阶梯博弈给出的问题如下:从第0个阶梯起,每个阶梯上都有若干个石子,每次都可以从任一阶梯上取任意正整数个石子往下一个阶梯放,不能操作的人输结论是:该状态的sg值为奇数阶梯上的石子的异或和证明:先证明这个模型可以转化为把奇数阶看成若干堆石子的nim博弈如果对手从偶数阶往奇数阶放,那么我们可以从该奇数阶取相同的石子到下一阶,即将偶数阶的石子放到了下...原创 2018-10-07 13:43:27 · 267 阅读 · 0 评论 -
牛客练习(green博弈+bitset)
出这题算是比较用心了。。复习一下。。先考虑单链的情况,显然先手一定必胜,那么他的sg值要如何求呢?从0开始枚举,发现这条链可以通过黑白表示成二进制数,而只要小于这个二进制数的所有状态都能到达(相当于借了一位之后低位就能任取了),所以只要把链用二进制表示就行了。。然而这个sg值有点大啊,所以用bitset去存就很美滋滋。。然后考虑分叉,其实就是green博弈,直接异或即可。。终于有道...原创 2018-10-06 22:25:10 · 288 阅读 · 0 评论 -
牛客训练赛(博弈)
先判一波有没有a-b的石子堆,有直接必胜。。如果没有那么任何时候取完不能使石子数在a-b这个范围内,因此可以把a-b当成无用状态。。然后直接打表就可以了。。a=1的情况需要注意,因为 a>1的时候可以把b+1取到a以内,而a==1是不行的。。。(被这个卡到怀疑人生 /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━...原创 2018-10-03 17:10:20 · 267 阅读 · 0 评论 -
poj2311(sg函数)
sg函数针对的不止是nim,而是其他各种各样的游戏,只要其游戏规则相同均可用sg函数来求解。。感觉自己对sg函数的理解还不够到位。。多写题多思考来加深理解把。。通过这题给窝的理解是,sg函数代表的是某些同类状态的标号。。其中0是必败态,只要能到达非0标号的状态,那么根据sg函数的定义他一定能够转移到标号为0的状态(即必败态)而这种标号的实际意义不大,可以这么说,将所有标号为1和2的状态的标号互换对...原创 2018-05-24 23:25:31 · 187 阅读 · 0 评论 -
poj1704(阶梯博弈)
这个题貌似是一种叫阶梯博弈类型的题。。可以转化成nim,后再去深入一下。。这题主要把棋子都弄成一对一对的,对每一对,将其看做石子数为2个棋子之间的空隙的石子堆。。为什么可以这么看呢?设想当前是必胜态,如果对手移动右棋子,那和取石子无异,如果是移动左棋子呢?我们可以相应地移动右棋子,使空隙数不变,这样仍然回到了必胜的状态。。。看这挑战做的题。。还得再深入了解一下。。。/** * ┏┓...原创 2018-05-24 15:12:48 · 965 阅读 · 0 评论 -
poj2484(博弈论)
开博弈论坑啦。。难度貌似没自己想象中那么大。。总之先入了门再说。。这题其实只要判断长度为n-1或者n-2的链,bob先手的情况即可。。然后来考虑一般链的情况。。枚举了前几项发现先手总是必胜,那么可以得到,链上bob必胜。。由于n<=2的时候alice可以直接取走,所以alice赢其他情况都会成一条链,bob赢然后来证明一下链上先手必胜。。 l=1或者l=2的时候可以直接取走。。l>3时...原创 2018-05-24 00:13:29 · 152 阅读 · 0 评论 -
lightoj1355(green博弈)
这个显然要运用green博弈,那么问题就落在怎么处理边权。。想了好久都没想出。。然后直接打表。。发现结论如下:边权为1直接按照green博弈的步骤来边权偶数其sg值不变边权为大于1的奇数其sg值需要和1进行异或然后这题能过了。。证明待补充。。。然后又经过了V8的提示,想出了一个证明方法(orzV8考虑一条链上的情况,且只有与根相连的边的权值大于1,设为A边,其他部分称为B子树那么先考虑A边边权为偶...原创 2018-06-06 23:33:49 · 514 阅读 · 0 评论 -
green博弈/树链博弈
学了green博弈(V8称之为树链博弈)由于貌似网上没什么太多的中文资料。。所以窝就写一个。。(流下了不会英语的泪水 qaq给定一棵有根树,A和B分别轮流删边,删边后不与根联通的子树也一并删去。。那么如何判断当前必胜或者必败呢?先考虑一个简单的模型,如果这棵树是一条链,那么他不就跟取石子一样了么?那么再考虑一个复杂一点的,在根上再加一条链,那么,这不就变成了取2堆石子的问题了么?其 sg值正是这2...原创 2018-06-02 21:24:32 · 745 阅读 · 0 评论 -
hdu3537(Turning Turtles)
这个只要明确一个硬币作为一个状态求sg值就好了,然后是对一个硬币的sg打表找规律。。相当不好找。。。2倍关系加上个位数的分类讨论。。 /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ┃ * ┃ > < ┃ * ...原创 2018-10-21 15:33:35 · 216 阅读 · 0 评论