CF2150E1.Hidden Single (Version 1)
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
⠀
这道题有两个版本,分别对 t、n 以及最大查询次数有不同的限制,解出一个版本不一定能解出另一个。建议同时阅读两个版本。本题不允许 Hack。
这是一个交互题。
有一个长度为 2n−1 的隐藏数组 a1,a2,…,a2n−1,其中包含 1 到 n 的所有数字,每个数字都恰好出现两次,除了一个只出现一次的数。
你可以进行如下格式的询问,其中 S 是 {1,2,…,2n−1} 的一个子集,x 是 [1,n] 范围内的整数:
- $\texttt{ask(S, x)} $:存在 i∈S 使得 ai=x 吗?
请使用不超过 4n+2⌈log2n⌉ 次查询,找出只出现一次的那个数字。你只需输出该数字本身,不需要找出它在数组中的位置。
注意,交互器是非自适应的,即隐藏数组在你的查询过程中保持不变。
输入格式
每个测试点包含多组测试数据。第一行包含测试数据个数 t(1≤t≤4000)。接下来每组测试数据描述如下。
每组测试数据的第一行包含一个整数 n(1≤n≤300),即隐藏数组 a1,a2,…,a2n−1 中的最大值。
保证所有测试点中 n2 的总和不超过 4×105。
本题共 80 个测试数据(包括样例)。
输出格式
(本题为交互题,具体输出格式请参考题目描述与交互说明。)
输入输出样例
输入#1
2 2 0 3 1 1 1 1
输出#1
? 1 2 1 2 ! 1 ? 1 2 1 4 ? 2 2 1 4 ? 2 1 2 ? 1 1 5 ! 3
说明/提示
在第一个测试点中,n=2,隐藏数组长度为 2n−1=3。一种符合交互的隐藏数组为 [2,2,1],其中 1 只出现一次,2 出现两次。
| <> | 选手输出 | 交互器回复 | 解释 |
|---|---|---|---|
| 1 | ? 1 2 1 2 | 0 | 询问:a1=1 或 a2=1?否(两者均为 2)。因此 1 最多只能出现在位置 3,故只出现一次的数字为 1。 |
| 2 | ! 1 | 输出答案。我们询问了 1 次(输出答案不计入查询次数),少于允许的最多查询次数 4n+2⌈log2n⌉=10。 |
在第二个测试点中,n=3,隐藏数组长度为 5。一种符合交互的隐藏数组为 [1,2,3,2,1],其中 3 出现一次,1 和 2 各出现两次。
| <> | 选手输出 | 交互器回复 | 解释 |
|---|---|---|---|
| 1 | ? 1 2 1 4 1 | 1 | 检查 a1 或 a4 是否为 1。是(a1=1)。 |
| 2 | ? 2 2 1 4 2 | 1 | 检查 a1 或 a4 是否为 2。是(a4=2)。 |
| 3 | ? 2 1 2 | 1 | 检查 a2=2。是。 |
| 4 | ? 1 1 5 | 1 | 检查 a5=1。是。 |
| 5 | ! 3 | 可以推断 3 既不出现在 1 和 4(其处有 1 和 2),也不出现在 2 和 5(分别为 2 和 1),所以答案为 3。 |
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?