QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 512 MB 満点: 100 インタラクティブ

#7418. 交互式顶点

統計

这是一个交互式问题。

Endagorion 有一棵包含 $n$ 个顶点的树,并且他已经向你展示了这棵树。他选择了一个顶点 $u$ 作为特殊顶点,但现在他不会告诉你关于它的任何信息!

你可以向他提问。对于每次询问,你需要选择一个顶点 $x$、一个整数 $k$ 以及 $k$ 个顶点 $v_1, v_2, \dots, v_k$,他会告诉你 $\min_{i=1}^k (\text{dist}(u, v_i)) \ge \text{dist}(u, x)$ 是否成立。其中,$\text{dist}(p, q)$ 是树中顶点 $p$ 和 $q$ 之间简单路径上的边数。

你需要使用最多 $4 \lceil \log_2 n \rceil$ 次询问猜出这个特殊顶点。

Endagorion 非常诚实,因此他不会在你的询问之间更改顶点(换句话说,交互器不是自适应的)。

由于数据规模较大,且刷新(flush)操作代价昂贵,请确保不要过于频繁地刷新。你只能在每次询问后刷新一次。

交互

交互开始时,输入包含一个整数 $n$:Endagorion 树的顶点数($2 \le n \le 200\,000$)。

接下来的 $n-1$ 行,每行包含两个整数 $u$ 和 $v$($1 \le u, v \le n$),表示 $u$ 和 $v$ 之间的一条边。保证给定的边构成一棵树。

之后,你可以进行询问。

要进行询问,请打印一行包含 “? $k$”($1 \le k \le n$)、一个整数 $x$($1 \le x \le n$)以及 $k$ 个不同的整数 $v_1, v_2, \dots, v_k$($1 \le v_i \le n$)。连续的整数之间用空格分隔。然后刷新输出。

每次询问后,读取一行,其中包含一个整数 $ans \in \{0, 1\}$。如果 $\min_{i=1}^k (\text{dist}(u, v_i)) \ge \text{dist}(u, x)$,则 $ans$ 为 $1$。否则,$ans$ 为 $0$。

当你找到特殊顶点 $u$($1 \le u \le n$)时,打印一行包含 “! $u$”,然后刷新输出并终止程序。

如果你进行的询问次数超过 $4 \lceil \log_2 n \rceil$,你的程序将获得 Wrong Answer 或 Time Limit Exceeded。如果你没有打印任何内容或忘记刷新输出,你的程序将获得 Idleness Limit Exceeded。

要刷新输出,你需要在打印询问和换行符后执行以下操作:

  • C++: fflush(stdout)cout.flush()
  • Java: System.out.flush()
  • Pascal: flush(output)
  • Python: stdout.flush()
  • 其他语言请查阅相关文档。

样例

输入格式 1

5
1 2
1 3
1 4
1 5
1

输出格式 1

? 4 1 2 3 4 5
! 1

输入格式 2

5
1 2
1 3
1 4
1 5
0
0
0
0

输出格式 2

? 4 1 2 3 4 5
? 3 1 2 3 4
? 2 1 2 3
? 1 1 2
! 2

输入格式 3

7
1 2
2 3
3 4
4 5
3 6
6 7
1

输出格式 3

? 3 3 5 7 1
! 3

说明

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.