考虑对 (a,x) 进行一些调整。注意到这个拿石子操作本质上是拿走 x 二进制上的一些 1,那么将 (a,x) 放在二进制上进行观察。首先有如下几个比较简单的调整:
设 a 的最高位 1 的位置在 pos,那么对于 x 中位置在 pos 之后的 1 是一定取不了的,可以直接删除。
如果 a,x 的第 i 位都是 0,这一位没用都可以直接删除。
上面两个调整比较简单,不足以将 \operatorname{SG} 函数压维。
考虑从高到底找到最大的 i 满足 a 的第 i 位为 1,x 的第 i 位为 0,注意这一位本身就没有可以取的 1,那么相当于对于 0\sim i-1 位,这些位是可以任取的,于是可以将该位删除并把 a 的第 0\sim i-1 全部变为 1。最后一步调整是如果 p 满足 p\in [0,i-1] 且 x 的第 p 位是 0,那么第 p 位可以一并删掉。