QOJ.ac

QOJ

时间限制: 2 s 内存限制: 2048 MB 总分: 100 交互

#8267. 瞪眼比赛

统计

凝视比赛是一种经典的心理素质较量,两名选手通过凝视对方的眼睛,同时保持面部表情的镇定自若。比赛的目标是比对手坚持更久的眼神接触。当一名选手失去镇定(通常表现为移开视线、微笑、说话或咯咯笑)时,比赛结束。

作为国家凝视比赛的教练,你需要确定你队伍中 $n$ 名成员在即将到来的世界总决赛中的心理素质。第 $i$ 名选手可以保持眼神接触恰好 $a_i$ 秒,但这些数值起初对你来说是未知的。例如,你可能有一个 $n = 3$ 人的队伍:

$i$ 姓名 $a_i$
1 Anna 431
2 Esther 623
3 Tony 121

当选手 $i$ 和 $j$ 进行比赛时,对峙持续的时间恰好为 $\min(a_i, a_j)$ 秒,此时较弱的选手会失去镇定,两名选手会在不到一秒的时间内开始微笑和咯咯笑。例如,如果 Anna 与 Esther 比赛,比赛持续 431 秒。重要的是,对于外部观察者来说,无法确定对峙的实际胜者(在本例中是 Esther),只能测量比赛的持续时间。

你的目标是使用尽可能少的凝视比赛来估计数值 $a_1, \dots, a_n$。显然,最强选手的实力永远无法确定,因此允许你低估其中一个 $a_i$。

交互

这是一个交互式问题。交互开始时,你需要读取包含整数 $n$ 的单行。然后你可以询问形式为 “? $i$ $j$” 的查询,其中 $1 \le i \le n$,$1 \le j \le n$ 且 $i \neq j$。查询的响应是一个整数:值 $\min(a_i, a_j)$。交互以你打印一行以 ! 开头,后跟 $n$ 个整数估计值 $b_1, \dots, b_n$(以空格分隔)结束。这必须是你输出的最后一行。

如果对于除一个选手外的每一位选手 $i$,都有 $b_i = a_i$,则你的提交是正确的,你可以低估那一个选手的数值。准确地说,我们要求对于所有 $1 \le i \le n$ 都有 $b_i \le a_i$,并且允许至多有一个 $k$ 使得 $b_k \neq a_k$。

交互器是非自适应的,这意味着 $a_1, \dots, a_n$ 在交互开始前就已经确定。

数据范围

选手人数 $n$ 满足 $2 \le n \le 1500$。每位选手的心理素质 $a_i$ 满足 $1 \le a_i \le 86\,400$,且它们各不相同。你最多可以使用 3000 次查询;你输出的最后一行(即以 ! 开头的那一行)不计入查询次数。

你的解法将在多组测试数据上进行测试,每组测试数据都有相应的分值。每个测试组包含一组测试用例。要获得测试组的分数,你需要解决该组中的所有测试用例。你的最终得分为单次提交所获得的最高分数。

对于第 3 组,你的得分是该组所有测试用例中的最低得分。每个测试用例的得分取决于你使用的查询次数;查询次数越少越好:假设你使用了 $q$ 次查询。如果 $q \le n + 25$,则你获得满分 80 分。如果 $q > 3000$,则你不得分。否则,你获得 $118.2 - 12 \cdot \ln(q - n)$ 分,四舍五入到最接近的整数。例如,对于 $n = 1500$ 和 $q = 3000$,你获得 30 分。

组别 分数 数据范围
1 9 $n \le 50$
2 11 $n \le 1000$
3 0–80 $1000 < n \le 1500$

交互样例说明

样例交互 1 展示了使用上述示例的一种可能的交互过程。注意 Anna 和 Tony 的实力被正确确定了。(Esther 的实力永远无法确定。)

Read Write
3
? 1 2
431
? 1 3
121
? 3 2
121
! 431 431 121

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.