QOJ.ac

QOJ

Type: Editorial

Status: Open

Posted by: xcx0902

Posted at: 2026-08-27 20:45:43

Last updated: 2026-08-27 20:46:17

Back to Problem

New Editorial for Problem #2609

目标显然是确定 $\texttt{seed}$,然后就能二分了。

先问 $Q$ 次 $V=10^{18}$,并假设 $y \ne V$。此时,原始回复必然是 $0$,也就是说可以直接拿到每次的 $\texttt{seed} \bmod n$。从最后一次向前推 $\texttt{seed}$ 的可能范围。设这一次 $n \cdot \texttt{seed} \bmod P$ 时被减去了 $kP$,那么这一次的回复就是 $(\texttt{seed} \cdot n - kP) \bmod n = (-kP) \bmod n$。由于 $\gcd(P,n)=1$,$k$ 必然唯一确定。于是上一轮的 $\texttt{seed}'=\dfrac{\texttt{seed}+kP}{n}$。据此可以发现每一轮 $\texttt{seed}$ 的范围都是一个区间,且每次区间长度会除以 $n$。令 $Q=\lceil \log_n V \rceil$ 即可唯一确定一开始的 $\texttt{seed}$。

对于 $y=V$ 的情况,在二分时解密后的结果由极大概率出现 $\{0,1,2\}$ 之外的数,据此判断即可。

Comments

No comments yet.