QOJ.ac

QOJ

时间限制: 7.0 s 内存限制: 512 MB 总分: 100

#11750. 机器人之间的通信

统计

在 21 世纪,人类在银河系中不断繁衍。自上世纪末以来,为了发现新的宜居行星,数以千计的先驱飞船被发射升空。

Tripenerse 号就是其中之一,它正驶向仙女座星系。在超空间中进行了漫长的航行后,船员们终于发现了一颗非常有希望的候选行星。接下来的任务是调查这颗行星,以确定它是否真的适合新居民居住。

为此,飞船携带了一些无人着陆器。船长 Juclean Dripac 决定将它们投放到行星上并收集相关数据。但不幸的是,这些机器人有些陈旧且不够智能,因此操作员必须在着陆前规划好它们在行星上的行动。包括你在内的许多船员都被召集起来制定这一重要计划。

任务中最复杂的部分是收集并整合许多机器人独立采集的所有数据。机器人需要在任务期间的某个时刻建立全对全通信通道以交换数据。也就是说,所有机器人在预定的时间点同时激活它们的通信通道,并在那一刻相互交换数据。这个时刻可以发生在任务的开始、结束或中间的任何时间。你必须选择这个时刻,操作员将据此对机器人进行编程。

机器人使用无线通道进行通信,因此机器人之间的距离不会限制连通性。但两个机器人之间的距离越远,它们通信所需的功率就越大。由于电池容量的限制,你需要尽可能节省传输功率。

好消息是,机器人的通信单元也具有路由功能,因此机器人可以通过其他机器人作为中继进行间接通信。考虑一个图,其中顶点代表机器人,边代表它们之间建立的通信通道。如果该图是连通的,则可以建立全对全通信。

你的任务是编写程序,计算机器人之间进行全对全通信所需的最小总传输功率。请记住,它们在任务期间只能在某个时刻进行一次通信会话,且你可以提前选择这个时刻。每个机器人在行星表面做线性运动。两个机器人之间所需的传输功率与它们之间的距离成正比,因此这里的成本正是建立通信通道的每对机器人之间距离的总和。

你可以将行星表面视为一个足够大的二维平面。机器人之间传输数据所需的时间也可以忽略不计。

输入格式

输入包含不超过 200 组数据集。每组数据集的格式如下:

$N \ T$ $x_1 \ y_1 \ vx_1 \ vy_1$ $\dots$ $x_N \ y_N \ vx_N \ vy_N$

每组数据集的第一行包含两个整数:$N$ 是用于收集数据的机器人数量($2 \le N \le 16$),$T$ 是任务的时间限制($1 \le T < 1000$)。

接下来的 $N$ 行每行描述一个机器人的运动。$(x_i, y_i)$ 和 $(vx_i, vy_i)$ 分别是第 $i$ 个机器人的初始着陆位置和速度($|x_i|, |y_i| < 10^6$,$|vx_i|, |vy_i| < 1000$)。

最后一行数据集后跟有一行包含两个零的行。该行不属于任何数据集,不应进行处理。

保证所有数据集中的 $N$ 之和不超过 1700。

输出格式

对于每组数据集,输出一行,表示进行全对全通信所需的最小通信成本。你的程序可以输出小数点后任意位数的数字。绝对误差应小于或等于 $0.001$。

样例

样例输入 1

4 2
2 0 0 1
0 4 1 0
4 6 0 -1
6 2 -1 0
4 6
2 0 0 1
0 4 1 0
4 6 0 -1
6 2 -1 0
0 0

样例输出 1

6.00000000
4.24264069

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.