简要题意
题解
这道题是一道非常有意思的思维题,这里给出一个小提示,只用 \(3\) 次询问就可以极大概率猜对答案,建议读者独自思考一下。
首先我们显然有一个很自然的想法令 \(x_0=a,x_1=b\) 之后写出 \(x_2,x_3,x_4\) 的表达式: \[ \begin{aligned} x_0&=a\\ x_1&=b\\ x_2&=a\oplus f_1(b)\\ x_3&=b\oplus f_2(a\oplus f_1(b))\\ x_4&=a\oplus f_1(b)\oplus f_3(b\oplus f_2(a\oplus f_1(b))) \end{aligned} \] 那么我们注意到这其中有个很特殊的值就是 \(x_2\) ,我们可以通过一次询问得到 \(x_0,x_1,x_3,x_4\) ,而且由上述式子可以轻易发现 \(x_2\) 的值与 \(x_0\) 的值高度相关,具体地说,在不改变 \(x_1\) 的情况下,我们将 \(x_0\) 异或上一个 \(d\) ,这个操作相当于对 \(x_2\) 异或上一个 \(d\) ,这就启发我们对于不同的输入,判断 \(x_2\) 是否相同,到了这里,其实已经成功一半了,再次建议读者独自思考一下。
但是我们发现,无论我们怎么改变 \(x_0,x_1\) 的输入,总是会对之后变量引起不可控的变化,这显然不利于我们进一步探索。
回到题目,我们发现除了询问 \(P(x)\) 之外,我们还被允许询问 \(P^{-1}(x)\) ,受此启发,我们来考察一下 \(x_2\) 与 \(x_3,x_4\) 之间的关系,我们有 \(x_4=x_2\oplus f_3(x_3)\) ,也就是 \(x_2=x_4\oplus f_3(x_3)\) !我们发现在保持 \(x_3\) 不变的前提下,给 \(x_4\) 异或上一个 \(d\) ,其效果也相当于给 \(x_2\) 异或上一个 \(d\) ,那么有了这个观察之后,这题就好做了。