CFCF2178E.Flatten or Concatenate
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
这是一个交互题。
在工作中摸鱼的时候,妖精 Dilhan 偶然发现了两个数组 a 和 b。最开始,它们都只包含一个整数 2k(即 a=b=[2k]),其中 k 是一个非负整数。
Dilhan 随后对这两个数组进行了任意次数(可能为零),任意顺序的如下两种操作:
- 扁平化(Flatten)—— 选择 a 或 b 中的一个数组,在数组中任选一个当前最大的元素 x(x 不要求在另一个数组中也为最大)。然后,将 x 替换为在同一位置上的两个 2x。该操作只能在 x 为偶数时进行。
- 拼接(Concatenate)—— 令 a 和 b 都变为 a+b,其中 + 表示数组拼接操作。
在若干操作之后,Dilhan 丢弃了 b,并将 a 隐藏起来,向你发起了挑战。
记隐藏数组 a 的长度为 n。你可以进行以下询问:
- 选择一个区间 [l,r](1≤l≤r≤n),Dilhan 会告诉你 al+al+1+⋯+ar 的值。
请在最多 300 次询问中,确定 a 中的最大元素的值。
输入格式
每组测试包含多个测试用例。第一行包含测试用例数量 t(1≤t≤100)。接下来的描述依次给出每个测试用例。
每个测试用例的第一行包含一个整数 n(1≤n≤105),表示数组 a 的长度。
保证 1≤ai≤230,且该数组可由题目描述中的构造过程得到。
保证所有测试用例中 n 之和不超过 105。
输出格式
(交互题,请按照要求输出)
输入输出样例
输入#1
4 11 9 4 12 1 1 8 4 4 4 4 8
输出#1
? 3 8 ? 1 4 ? 5 11 ! 2 ? 1 1 ! 1 ? 1 1 ? 2 2 ? 3 3 ? 4 4 ! 4 ! 1073741824
说明/提示
在第一个测试用例中,Dilhan 隐藏的数组 a 是 [1,1,1,1,2,2,2,1,1,2,2]。它的构造过程如下:
| # | 操作 | a 操作后 | b 操作后 |
|---|---|---|---|
| 0 | 初始 | [4] | [4] |
| 1 | 对 a 扁平化 | [4]→[2,2] | [4] |
| 2 | 对 b 扁平化 | [2,2] | [4]→[2,2] |
| 3 | 对 a 扁平化 | [2,2]→[2,1,1] | [2,2] |
| 4 | 拼接 | [2,1,1,2,2] | [2,1,1,2,2] |
| 5 | 对 a 扁平化 | [2,1,1,2,2]→[1,1,1,1,2,2] | [2,1,1,2,2] |
| 6 | 拼接 | [1,1,1,1,2,2,2,1,1,2,2] | [1,1,1,1,2,2,2,1,1,2,2] |
- 询问 ?38,回答为 1+1+2+2+2+1=9;
- 询问 ?14,回答为 1+1+1+1=4;
- 询问 ?511,回答为 2+2+2+1+1+2+2=12。
此时 a 的最大元素为 2。
第二个测试用例中,数组 a 只有一个元素。通过一次询问即可知道该元素的值,也就是最大值。
第三个测试用例中,Dilhan 隐藏的数组 a 为 [4,4,4,4,4,4,4,4],其构造过程如下:
| # | 操作 | a 操作后 | b 操作后 |
|---|---|---|---|
| 0 | 初始 | [4] | [4] |
| 1 | 拼接 | [4,4] | [4,4] |
| 2 | 拼接 | [4,4,4,4] | [4,4,4,4] |
| 3 | 拼接 | [4,4,4,4,4,4,4,4] | [4,4,4,4,4,4,4,4] |
最大元素为 4。
第四个测试用例中,Dilhan 隐藏的数组 a 是 [229,229,230,229,228,228,229,229]。