CF2222E Seek the Truth

题目描述

[Nanatsukaze - Connect the World](https://www.youtube.com/watch?v=M-IayQIR0XA) 这是一个交互题。 有两个隐藏的整数 $k$ 和 $c$,其中 $k\in \{1,2,3\}$,$1\le c\le 2^n-1$。注意 $c\ne 0$。 在任何交互之前,你需要向评测器给出一个不超过 $2^n-1$ 的非负整数 $a$。评测器会用 $a$ 作为集合 $S$ 的初始元素,也就是说,初始时 $S=\{a\}$。 接下来,你最多可以进行 $n+3$ 次如下两种类型的查询: 1. 选择一个整数 $x$,$0\leq x\le 2^n-1$。评测器会将 $f(x)$ 插入 $S$ 然后返回 $|S|$(即 $S$ 插入该元素后的大小); 2. 选择一个整数 $y$,$0\leq y\le 2^n-1$。评测器会返回满足 $z\in S$ 且 $z\geq y$ 的整数 $z$ 的个数。 其中,$f(x)$ 的定义如下: $$ f(x)= \begin{cases} x\,\&\,c & \text{若 } k=1,\\ x\,|\,c & \text{若 } k=2,\\ x\oplus c & \text{若 } k=3。\\ \end{cases} $$ 这里 $\&$ 表示按位与运算,[bitwise AND operation](https://en.wikipedia.org/wiki/Bitwise_operation#AND);$|$ 表示按位或运算,[bitwise OR operation](https://en.wikipedia.org/wiki/Bitwise_operation#OR);$\oplus$ 表示按位异或运算,[bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR)。 你的任务是在最多 $n+3$ 次交互内确定 $k$ 和 $c$ 的值。 请注意,报告答案不计入 $n+3$ 次交互中。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1\le t\le 10^4$),表示测试数据组数。每组数据描述如下。 每组数据的第一行包含一个整数 $n$($2\leq n\leq 60$)。之后进入交互过程。 保证所有测试数据中 $n$ 的总和不超过 $10^5$。

输出格式

(交互题,格式见题面)

说明/提示

以下为样例交互过程: ``` Solution Jury Explanation ---------- ---------- ------------ 3 3 总共 3 组测试数据 2 2 $n=2$。隐藏参数为 $k=1, c=3$ 3 初始时 $S=\{3\}$ I 3 1 插入 $f(3)=3\,\&\,3=3$。$S=\{3\}$,返回 $|S|=1$ A 1 3 作答:$k=1, c=3$ 2 2 $n=2$。隐藏参数为 $k=2, c=2$ 1 初始时 $S=\{1\}$ I 0 2 插入 $f(0)=0\,|\,2=2$。$S=\{1,2\}$,返回 $|S|=2$ Q 2 1 $z$ 为 $2$ 时满足 $z\in S$ 且 $z\geq 2$,返回 $1$ Q 1 2 $z$ 为 $1$ 或 $2$ 满足条件,返回 $2$ Q 0 2 $z=1,2$ 满足条件,返回 $2$ I 3 3 插入 $f(3)=3\,|\,2=3$。$S=\{1,2,3\}$,返回 $|S|=3$ A 2 2 作答:$k=2, c=2$ 2 2 $n=2$。隐藏参数为 $k=3, c=1$ 1 初始时 $S=\{1\}$ I 1 2 插入 $f(1)=1\oplus 1=0$。$S=\{0,1\}$,返回 $2$ I 0 2 插入 $f(1)=0\oplus 1=1$。$S=\{0,1\}$,返回 $2$ A 3 1 作答:$k=3, c=1$ ``` 样例输入输出中的空行只是为了观感更好,实际提交时不必输出。 注意本题样例中的交互方式并不能唯一确定参数,仅用来说明交互格式。 由 ChatGPT 5 翻译