UOJ Logo Universal Online Judge

UOJ

#881. 【JOISC2024】环岛旅行

附件下载 统计

JOI 王国中有 $N$ 个岛屿,编号从 $1$ 到 $N$。JOI 王国中有 $N - 1$ 条海路,编号从 $1$ 到 $N - 1$。海路 $j$($1 \leq j \leq N - 1$)双向连接岛屿 $A_j$ 和岛屿 $B_j$。通过使用一些海路,可以从任何一个岛屿到达任何其他岛屿。

Aoi 打算在 JOI 王国进行一次旅行。然而,她不了解 JOI 王国的海路。她准备以以下方式向 JOI 王国的居民 Bitaro 询问问题:

  • Aoi 告诉 Bitaro 一个整数 $v$,其中 $1 \leq v \leq N$,和一个整数 $k$,其中 $1 \leq k \leq N - 1$。
  • Bitaro 告诉 Aoi 距离岛屿 $v$ 最近的第 $k$ 个岛屿的编号,除了岛屿 $v$ 之外的 $N - 1$ 个岛屿中。具体来说,他告诉她一个整数 $i$,使得 $dist(v, i) \times N + i$($1 \leq i \leq N$,$i \neq v$)是第 $k$ 小的,其中 $dist(v, i)$ 是从岛屿 $v$ 移动到岛屿 $i$ 所需的最小海路数。

Aoi 想通过向 Bitaro 提问来了解 JOI 王国中的所有海路。由于 Aoi 不想花太多时间,她最多可以向 Bitaro 提问 $L$ 次。 编写一个程序,给定 JOI 王国中岛屿的数量和向 Bitaro 提问的次数限制,实现 Aoi 的策略以找到所有海路。

实现细节

程序应该包含 island.h 头文件。

void solve(int N, int L)

  • 参数 $N$ 是岛屿数量 $N$。
  • 参数 $L$ 是问题数量上限 $L$。