SG 函数相关证明
首先,我们可以从 \(2\) 个游戏的情况推到若干个游戏的情况。下面考虑只有 \(2\) 个游戏的情况。
我们设第一个游戏的起始点为 \(u\),他的后继节点的 \(SG\) 函数所构成的集合为 \(S\);第二个游戏的起始点为 \(v\),他的后继节点的 \(SG\) 函数所构成的集合为 \(T\)。
我们只需要证明:\(mex(S) \oplus mex(T)=mex(S' \cup T')\)。
其中 \(S'=\{x|x\oplus mex(T) \in S\}\),\(T' = \{x|x\oplus mex(S) \in T\}\)。
同理,\(mex(S) \oplus mex(T) \notin T'\)。所以 \(mex(S) \oplus mex(T) \notin S' \cup T'\)。
首先\([0, mex(S)) \subseteq S,[0, mex(T)) \subseteq T\)。
接下来只需要证明 \([0, mex(S) \oplus mex(T)) \subseteq S'\cup T'\) 即可。
首先,因为 \(mex(S) \notin S\),所以 \(mex(S) \oplus mex(T) \notin S'\)。
设 \(mex(S) = s,mex(T) = t\)。考虑 \(s\) 和 \(t\) 从高到低的第一位,首先可以取到所有这一位为 \(0\) 的数。先考虑只有 \(1\) 个不同数位的情况,显然可行。
现在考虑当前位为 \(1\) 的这些数,可以发现,到下一位不同的数位,我们都能取到。一位一位地考虑,数学归纳法的思想。
可以证明 \([0, mex(S) \oplus mex(T)) \subseteq S'\cup T'\) 。