QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 512 MB Total points: 100

#6959. 栅栏

Statistics

一个村庄由 $n$ 座建筑物组成。每座建筑物都可以表示为二维平面上的一个点。第 $i$ 座建筑物的坐标为 $(x_i, y_i)$。

村民们想要在村庄周围架设围栏,要求如下: 围栏必须构成一个简单多边形; 每座建筑物都在多边形内(包括边界); * 作为村庄入口的第 $k$ 座建筑物必须位于围栏上。

求构成有效多边形所需围栏的最小总长度。

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 10^4$),表示测试用例的数量。

对于每个测试用例,第一行包含两个整数 $n, k$ ($3 \le n \le 2 \times 10^5, 1 \le k \le n$),分别表示建筑物的数量和入口编号。

接下来的 $n$ 行,每行包含两个整数 $x_i, y_i$ ($|x_i|, |y_i| \le 10^6$),表示第 $i$ 座建筑物的坐标。

对于每个测试用例,保证给定的点互不相同,且至少有三个点不共线。

保证所有测试用例中 $n$ 的总和不超过 $10^6$。

输出格式

对于每个测试用例,输出一行一个实数,表示围栏的最小总长度。(保留 3 位小数)

样例

输入 1

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

输出 1

8.828

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.