CF2155D.Batteries
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个交互式问题。为便于理解,请参见下方的交互说明。
有 n 节电池,编号为 1,2,…,n。其中有一些电池是工作的,另外一些不工作。设 a 为工作的电池的数量。已知 a≥2。
你知道 n 的值,但不知道 a。
有一个手电筒,能同时装入两节电池,且只有当两节电池都工作时手电筒才会亮。这些电池已经被打乱,你不知道哪些电池是工作的,哪些是不工作的。你可以选择任意两节电池,并放入手电筒进行测试。
你的目标是找到一对都工作的电池。然而,你担心损坏手电筒,所以你希望尽量减少测试的次数。
因此,你需要在最多 $ \left \lfloor \frac{n^2}{a} \right \rfloor $ 次尝试内,找到一对都工作的电池。
评测器是自适应的。这意味着电池 i(1≤i≤n)是否工作不是预先确定的,并且可能会在交互过程中发生变化。但保证始终存在一种含有 a 节工作的电池的分布方式,和你至今得到的信息相一致。
输入格式
每个测试包含多组测试用例。第一行为测试用例的数量 t(1≤t≤50)。每个测试用例的描述如下。
每个测试用例第一行为一个整数 n(2≤n≤40)——电池的数量。
保证所有测试用例中 n 的总和不超过 200。
输出格式
null
输入输出样例
输入#1
2 3 0 1 10 0 0 1
输出#1
1 2 2 3 1 2 1 3 1 4
说明/提示
在第一个测试中,有 3 节电池。只有第 2 和第 3 节电池是工作的。因此 a=2,我们需要在 ⌊232⌋=4 次测试中找到一对都工作的电池。
交互过程如下:
| 参与者 | 评测器 | 解释 |
|---|---|---|
| — | 3 | 这组数据有 3 节电池 |
| 1,2 | 0 | 你询问第 1 与第 2 节电池能否点亮手电筒。评测器回答不能。 |
| 2,3 | 1 | 你询问第 2 与第 3 节电池能否点亮手电筒。评测器回答可以。这样就找到了两个都工作的电池,本组用例交互结束。 |
在第二组测试用例中,有 10 节电池。只有第 1、4、6、9 节电池是工作的。因此 a=4,需要在 ⌊4102⌋=25 次测试中找到一对都工作的电池。
交互过程如下:
| 参与者 | 评测器 | 解释 |
|---|---|---|
| — | 10 | 这组数据有 10 节电池。 |
| 1,2 | 0 | 你询问第 1 和第 2 节电池能否点亮手电筒。评测器回答不能。 |
| 1,3 | 0 | 你询问第 1 和第 3 节电池能否点亮手电筒。评测器回答不能。 |
| 1,4 | 1 | 你询问第 1 和第 4 节电池能否点亮手电筒。评测器回答可以。这样就找到了两个都工作的电池,本组用例交互结束。 |
请注意,样例输入输出中的换行仅为清晰展示,实际交互过程中不会出现。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?