随笔分类 - 博弈
摘要:Array Game 考虑最裸的dp去求胜负态。 dp[ i ] 从后面的 m 个状态转移过来。 我们考虑如何用线段树维护, T[ i ][ mask ] 表示 i 这段区间如果后面接的m位是mask使时开头m位的mask, 对于修改的话只要维护一个反过来的T2就可以了。 感觉是可以想出来的题, 为
阅读全文
摘要:Game with Strings 题意并不是在图上走,看了好久才看出来。。 dp[ i ][ mask ]表示从 i 层开始走,起点有mask个, a的个数-b的个数的 最大值或者最小值。
阅读全文
摘要:我们可以把每段连续可以选的字符看成一个游戏, 那么sg[ i ]表示连续 i 个字符可选的sg值。 然后找找第一个就好啦。
阅读全文
摘要:一般这种要倒着来。
阅读全文
摘要:这种两个人轮流走,不能走 走过的格子的大都是二分图博弈。。。
阅读全文
摘要:题目大意:给你一个有向图, Bob 和 Alice 在做游戏,每轮他们走一步,当Bob 和 Alice在同一个点或者 Bob无路可走,Bob输,否则Alice输。 思路:因为在Bob赢的时候存在有环的情况, 但是在Bob输的时候的状态是明确的,我们利用Bob输的状态进行必胜比败态推演, f[ i ]
阅读全文
摘要:思路:我打了半天的表找规律。。。。 我们将每两个数的差值看成一堆堆石子,那么题目实际上就变为了 从当前堆可以拿出一些石子放到下一堆里去,就变成了一个阶梯博弈。。。
阅读全文
摘要:C - Lieges of Legendre 题目大意:有n堆石子,每堆ai个,每次可以选择其中一堆拿掉一个,或者选一个数量为2 * x的堆将它变成k堆x个。 问你先手胜还是后手胜。 思路:显然要用sg函数,k为偶数的情况比较简单,看表可以直接得到答案,k为奇数的情况下需要求一下sg, 小数据需要特
阅读全文
摘要:sg表很好打,规律很不好找。。。。
阅读全文
摘要:博弈的题目做的还是太少啦。。。 不会写啊啊啊 思路:将每个石子看成一个游戏, 那么整个游戏sg值就是全部石子sg值的异或。
阅读全文
摘要:题意:给你两个数,a,b,有两个人轮流进行一次操作, 每次操作可以将大的数减去k倍的小的数,最后不能操作的人输了,问你谁赢了。 思路:我们可以用辗转相除法求出对于每一个状态可以改变几次,这样问题就变成了给你若干堆石子,只能将前面堆的石子全部取完啦才能 取当前堆的石子,对于每一堆来说能取任意个,最后不
阅读全文
摘要:F - Financiers Game 这种两人博弈一般都可以用两个dp写, 一个dp描述第一个人的最优态, 第二个dp描述第二个人的最优态,难点在于优化空间。。。 我感觉这个空间开得有点玄学。。 dp[ op ][ l ] [ d ] [ k ] 表示到第op个人先手,在第任意轮的时候第一个人和第
阅读全文
摘要:题目大意:给你在一条线上的n(偶数)个点,mike和alice 开始禁点,他们轮流开始,直到最后只剩下两个点, mike希望剩下的两个点距离尽可能小,alice希望剩下的两个点距离尽可能大,他们都采用最优策略,问你最后 剩下的两个点是什么。 这种脑洞题好难啊啊,难受。 思路:我们假定剩下了两个点是
阅读全文