UOJ Logo Universal Online Judge

UOJ

#881. 【JOISC2024】环岛旅行

附件下载 统计

JOI 王国中有 N 个岛屿,编号从 1N。JOI 王国中有 N1 条海路,编号从 1N1。海路 j1jN1)双向连接岛屿 Aj 和岛屿 Bj。通过使用一些海路,可以从任何一个岛屿到达任何其他岛屿。

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

  • Aoi 告诉 Bitaro 一个整数 v,其中 1vN,和一个整数 k,其中 1kN1
  • Bitaro 告诉 Aoi 距离岛屿 v 最近的第 k 个岛屿的编号,除了岛屿 v 之外的 N1 个岛屿中。具体来说,他告诉她一个整数 i,使得 dist(v,i)×N+i1iNiv)是第 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