数据范围
- ;
- 是非负整数。注意,没有限制 的上界。
- 每个测试点中,最多可调用 次
ask_question。
- 交互库是自适应的。换言之, 不是固定的,可能会根据
ask_question 函数的调用情况改变。回答时,交互库保证存在一个数组 满足所有先前的 ask_question 函数的回答。
- 每个测试点中,交互库至多消耗 秒时间和 内存。
子任务
| 编号 |
得分 |
限制 |
|
|
|
|
|
|
|
|
,至多存在一个使得 的 |
|
|
, |
|
|
无额外限制 |
计分方式
子任务
若答案合法,得满分。
子任务
若答案错误,或者程序异常终止,得 分。
否则,令 为该子任务单个测试点内调用 ask_question 次数的最大值,并计算 :
该子任务得 的分数。
样例
考虑 且代表 Alice 拥有的物品价值的数组 为 的情况。
评分程序最初调用以下函数:
参赛者的代码可能会进行如下交互:
ask_question([[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]])
ask_question([[0, 1], [0, 2], [0, 3], [0, 4], [0, 5]])
在第一次调用的情况下,如果 Alice 选择物品 ,价值总和为 ,这是最大值。因此,此调用返回 。
在第二次调用的情况下,Alice 在满足条件时可以选取的物品集合为 和 。因此,此调用返回 或 。
考虑以下交互:
ask_question([[0, 1], [2, 3], [4, 5]])
ask_question([[0, 1], [1, 2], [2, 3], [3, 0], [4, 5]])
在第一次调用的情况下,这不是一次有效的调用,因为 threads 数组的大小不是 。
在第二次调用的情况下,这不是一次有效的调用,因为给定的不是一棵树。
有两个满足条件的整数数组 :
因此,该函数必须返回这两个数组之一。