CF2209C Find the Zero
题目描述
这是一个交互题。
给定一个整数 $n$。存在一个长度为 $2n$ 的隐藏数组 $a$。从 $1$ 到 $n$ 的每个整数在 $a$ 中都恰好出现一次,其余元素均为 $0$。
你可以进行如下类型的查询:
- 选择两个整数 $i$ 和 $j$($1 \le i, j \le 2n$,$i \ne j$),裁判会回应 $1$,如果 $a_i = a_j$,否则回应 $0$。
请在不超过 $n+1$ 次查询内,找到任意一个满足 $a_k=0$ 的整数 $k$($1 \le k \le 2n$)。注意交互方是自适应的,这意味着隐藏数组 $a$ 可能会根据你的查询动态变化,但不会违反之前的查询结果。
输入格式
每组测试数据包含多个测试用例。第一行包含测试用例数 $t$($1 \le t \le 10^3$)。接下来是各个测试用例的描述。
每个测试用例的第一行包含一个整数 $n$($2 \le n \le 10^4$)。隐藏数组 $a$ 的长度为 $2n$。
保证所有测试用例中 $n$ 的总和不超过 $10^4$。
输出格式
(交互题,无需输出格式固定说明。)
说明/提示
在第一个示例测试用例中,隐藏数组 $a$ 为 $[0,1,0,2]$:
- 第一次查询,$(i, j) = (1,2)$。由于 $a_1=0$,$a_2=1$,$a_1 \ne a_2$,裁判回应 $0$。
- 第二次查询,$(i, j) = (3,1)$。由于 $a_3=0$,$a_1=0$,$a_3 = a_1$,裁判回应 $1$。
- 程序报告 $k=3$ 作为答案。由于 $a_3=0$,答案正确。
在第二个示例测试用例中,隐藏数组 $a$ 为 $[3,2,0,1,0,0]$:
- 第一次查询,$(i, j) = (5,6)$。由于 $a_5=0$,$a_6=0$,$a_5 = a_6$,裁判回应 $1$。
- 第二次查询,$(i, j) = (2,4)$。由于 $a_2=2$,$a_4=1$,$a_2 \ne a_4$,裁判回应 $0$。
- 第三次查询,$(i, j) = (1,3)$。由于 $a_1=3$,$a_3=0$,$a_1 \ne a_3$,裁判回应 $0$。
- 程序报告 $k=6$ 作为答案。由于 $a_6=0$,答案正确。
由 ChatGPT 5 翻译