QOJ.ac

QOJ

Time Limit: 5 s Memory Limit: 2048 MB Total points: 100

#2314. 圈住这些牛

Statistics

Farmer John 拥有一群奶牛,他计划建造一个围栏将它们围起来,以确保没有奶牛能够逃脱(位于围栏边界上的奶牛不被视为被围在围栏内)。场地中已经存在一些木桩,Farmer John 只能在这些木桩之间建造围栏段。请帮助 Farmer John 计算围栏的最小长度,从而最小化成本。

下图展示了样例 1 的示意图。黑点代表木桩,白点代表奶牛。橙色线段为最优围栏。

样例 1 的示意图

输入格式

第一行包含两个整数 $N, M$ ($1 \le N, M \le 100$)。$N$ 是木桩的数量,$M$ 是奶牛的数量。

接下来的 $N$ 行,每行包含两个整数 $x, y$ ($-10^6 \le x, y \le 10^6$),表示一个木桩在二维笛卡尔坐标系中的坐标 $(x, y)$。

接下来的 $M$ 行,每行包含两个整数 $x, y$ ($-10^6 \le x, y \le 10^6$),表示一头奶牛在二维笛卡尔坐标系中的坐标 $(x, y)$。

所有位置保证各不相同(即没有两个木桩、两头奶牛,或一个木桩和一头奶牛占据相同的位置)。

输出格式

输出一行,包含一个实数,表示围栏的最小长度,保留小数点后 2 位。如果无法建造这样的围栏,输出 -1。

样例

输入 1

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

输出 1

11.83

输入 2

3 1
0 0
1 1
-1 1
0 1

输出 2

-1

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.