题目大意
求一个游戏的字典序最小的必胜方案。
给出对手每一步操作。(之所以放在上一句话后面是为了与必胜方案相区分因为他们毫无关系,给出对手的操作仅仅是为了确定某一种必胜态罢了。)
分析
不妨判断每一步是否可以为字典序较小的一种操作。具体判断方案实际上是跑一棵决策树, and 层和 or 层交替,看这个是否为必胜态,可是直接会超时,加上随机化搜索顺序,期望时间复杂度算法如下。
我们来考虑这种随机情况下的复杂度, t(d) 为 d 层的树,根节点为
1 时的复杂度, f(d) 为 d 层的树,根节点为 0 时的复杂度,那么
f(d)=2∗t(d−1)
t(d)=f(d−1)+t(d−1)∗13
可见这样在 d = 2n = 28 的情况下复杂度非常低,因此我们只要对于搜索中判断节点的先后进行随机化就能够解决掉这道题了。
反正我是没看懂,跑得飞快就是了。