题解:CF1365G Secure Password
题意:交互题,每次你可以询问一个集合,交互库会返回这个集合的元素按位或的结果,求 \(i = 1,2,\cdots n\),序列中元素除了 \(i\) 全按位或在一起的结果。
做法:
首先很容易想到二进制分组,操作为 20 次,冲不进去。
然后很自然想到更高进制进行分组再加上进制混用,在第一位使用二进制,后面 5 位使用三进制时达到了 17 次操作,仍然太多。
我们考虑一个特别的方式,我们取 13 位二进制数中 1 的个数为 0 的,然后每次询问每一个位上是 0 的所有数或出来的结果,第 \(i\) 位的答案记为 \(v_i\),因为 \(C_{13}^6 > 1000\) 所以是可以覆盖所有数的。回答询问时,我们遍历每一位,若第 \(i\) 位上是 1 则将答案或上 \(v_i\)。
关于正确性的说明:对于 \(x\),其他每一个数都会有一个位当 \(x\) 在这一位是 \(0\) 时而其他的数不是 \(1\),比较显然。

浙公网安备 33010602011771号