不妨设根为 1,叶子颜色为 0 的有 L0 个,同理 L1,L?,再设 I? 是中间的未定节点数量。
设 VI(L0,L?,I?) 为 Iris 先手时最终得分,VD 同理,那么状态转移:
VI(L0,L?,I?)=max{VD(L0+1,L?−1,I?)VD(L0,L?,I?−1)L?≥1I?≥1
同理,VD 的转移如下:
VD(L0,L?,I?)=min{VI(L0,L?−1,I?)VI(L0,L?,I?−1)L?≥1I?≥1
我们来用数学归纳法证明 L?+I? 为任意自然数时,都有 VI(L0,L?,I?)=L0+⌈L?/2⌉,VD(L0,L?,I?)=L0+⌊L?/2⌋。
当 L?+I?=0 时,显然成立,接下来我们进行归纳步:
对于 VI,我们有:
VI(L0,L?,I?)=max{L0+1+⌊2L?−1⌋,L0+⌊2L?⌋}=L0+⌈2L?⌉
对于 VD,我们有:
VD(L0,L?,I?)=min{L0+⌈2L?−1⌉,L0+⌈2L?⌉}=L0+⌈2L?−1⌉=L0+⌊2L?⌋
证毕。
如果根没有被定,那么我们的状态就应当包含 L0,L1,L?,I? 了,因为我们总是可以选择下一步是否定根,定根之后就有直接的公式可以计算,所以是否定根可以给我们一个下界。
说起来比较抽象,写成公式的话,就是:
VI(L0,L1,L?,I?)=max⎩⎨⎧VD(L0,L?,I?)=L0+⌊L?/2⌋VD(L1,L?,I?)=L1+⌊L?/2⌋VD(L0,L1,L?,I?−1)VD(L0+1,L1,L?−1,I?)VD(L0,L1+1,L?−1,I?)
同理,对于 VD,我们有:
VD(L0,L1,L?,I?)=min⎩⎨⎧VI(L0,L?,I?)=L0+⌈L?/2⌉VI(L1,L?,I?)=L1+⌈L?/2⌉VI(L0,L1,L?,I?−1)VI(L0+1,L1,L?−1,I?)VI(L0,L1+1,L?−1,I?)
也就是说,起码可以列出不等式:
VD(L0,L1,L?,I?)≤min(L0,L1)+⌈L?/2⌉VI(L0,L1,L?,I?)≥max(L0,L1)+⌊L?/2⌋
-
当 L0=L1 时,我们总可以证明直接定根是更优的,即,I 做出别的选择不会比直接定根更优,因为:
max{other choice}≤max⎩⎨⎧min(L0,L1)+⌈2L?⌉min(L0+1,L1)+⌈2L?−1⌉min(L0,L1+1)+⌈2L?−1⌉
简单讨论就可以知道不会更优,所以一定会直接定根,即 VI(L0,L1,L?,I?)=max(L0,L1)+⌊L?/2⌋,同理 VD(L0,L1,L?,I?)=min(L0,L1)+⌈L?/2⌉
-
当 L0=L1=L 时,不难发现如果使用了上面五行情况的最后两行,对面是可以直接套用我们得出的公式的,写出来化简后会发现前两行的值和后两行的值完全相等,所以此时的状态只剩下了 I? 一种,即:
VI(I?)VD(I?)=max{L+⌊L?/2⌋,VD(I?−1)}=min{L+⌈L?/2⌉,VI(I?−1)}
关键点其实就是要看我们能不能逼迫 VD 给出 L+⌈L?/2⌉,容易发现这只与 I? 的奇偶性有关,证明可以用数学归纳法,所以双方能拿 I? 会尽可能地拿 I?。