QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: Milmon

Posted at: 2026-03-31 16:24:49

Last updated: 2026-03-31 16:24:53

Back to Problem

题解

考虑对于双方的数列各设定一个随机种子,并用生成的随机 01 数列与给定数列异或,此时数列可以看作两个均匀随机的数列,最后解码时只需要异或回去即可。

考虑如下朴素的策略,双方将答案转换为高精度数,接下来每次操作:

  • 若双方得分相等,那么双方将自己的数除以 $3$,并传输余数,仍然保持平局的概率为 $\frac{1}{3}$。
  • 否则,取传输进度慢的一方,将自己的数除以 $2$,并传输余数,回到平局状态的概率为 $\frac{1}{2}$。

这样的策略无法通过,接下来考虑优化。考虑设定一个概率 $p$,让得分不同时,有 $p$ 的概率回到平局状态。具体地,维护一个当前答案候选区间 $[l, r)$,按照 $p : 1 - p$ 的比例分为 $[l, x)$ 和 $[x, r)$ 两部分即可。

若选择 $[l, x)$ 那么得到的信息量为 $-\log_2 p$ 否则为 $-\log_2 (1 - p)$。通过数学推导可以得出 $p \approx 76\%$ 时期望最优并且可以通过此题。

实现时,可以将给定字符串分为 $B$ 位一块每一块用 long long 计算来避免高精度运算并且损失的信息量不多。

Comments

No comments yet.