CF2246E lce4113 and Security Game

题目描述

本题为交互题。此外,本题不支持 Hack。 有两个隐藏整数 $b$ 和 $v$,其中 $b \in \{0,1\}$,并且 $0 \le v < 2^{30}$。还有一个隐藏操作 $\mathrm{ty}$,取值为 $\&$ 或 $|$。其中,$\&$ 表示按位与操作(详见 [bitwise AND operation](https://en.wikipedia.org/wiki/Bitwise_operation#AND)),$|$ 表示按位或操作(详见 [bitwise OR operation](https://en.wikipedia.org/wiki/Bitwise_operation#OR))。 您的目标是猜出 $b$。 交互流程如下: - 首先,你向交互器发送一个值 $x$,其中 $0 \le x < 2^{30}$。 - 交互器返回 $v\,\mathrm{ty}\,x$。即形式上会返回 $o(v,x)$,其中 $$ o(v,x) = \begin{cases} v\,\&\,x & \mathrm{ty} = \& \\ v\,|\,x & \mathrm{ty} = |. \end{cases} $$ - 然后,你发送两个数 $m_0$ 和 $m_1$,要求 $0 \le m_0, m_1 < 2^{30}$。 - 最后,交互器将返回 $m_b \oplus v$,其中 $\oplus$ 表示按位异或操作(详见 [bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR))。 交互结束后,你需要输出 $b$。

输入格式

每组测试包含多组数据。第一行为测试组数 $t$($1 \le t \le 10^5$)。随后的内容为每组测试的交互,由你和交互器按照交互流程进行,每组测试时你将逐步得到相关信息。

输出格式

(无初始输出。每组交互结束后,你需要输出一个数字 $b$,判断隐藏位 $b$ 的值。)

说明/提示

样例交互流程如下: | Solution | Interactor | Explanation | |--------------|-------------------|----------------------------------------------------------------| | $3$ | | 有 $3$ 组测试数据。 | | $2$ | | 选取 $x = 2$。 | | | $0$ | 交互器返回 $x\,\mathrm{ty}\,v = 2\,\&\,1 = 0$。 | | $314$ $159$ | | 发送 $m_0 = 314,\ m_1 = 159$。 | | | $315$ | 返回 $m_b \oplus v = m_0 \oplus v = 315$。 | | $0$ | | 输出 $b = 0$。 | | $3$ | | 选取 $x = 3$。 | | | $3$ | 交互器返回 $x\,\mathrm{ty}\,v = 3\,|\,1 = 3$。 | | $12$ $34$ | | 发送 $m_0 = 12,\ m_1 = 34$。 | | | $35$ | 返回 $m_b \oplus v = m_1 \oplus v = 35$。 | | $1$ | | 输出 $b = 1$。 | | $0$ | | 最后一组数据,$x = 0$。 | | | $5$ | 交互器返回 $x\,\mathrm{ty}\,v = 0\,|\,5 = 5$。 | | $0$ $0$ | | 发送 $m_0 = 0,\ m_1 = 0$。 | | | $5$ | 返回 $m_b \oplus v = m_1 \oplus v = 5$。 | | $1$ | | 输出 $b = 1$。 | 请注意,样例方案的查询不能保证一定能判断出隐藏位 $b$ 的值。样例中的空行仅为可读性,不要求在代码输出时补充。 各测试数据的隐藏值如下表: | 测试编号 | $v$ | $b$ | $\mathrm{ty}$ | |----------|-----|-----|--------------| | 1 | $1$ | $0$ | $\&$ | | 2 | $1$ | $1$ | $|$ | | 3 | $5$ | $1$ | $|$ | 由 ChatGPT 5 翻译