QOJ.ac

QOJ

時間限制: 15 s 記憶體限制: 512 MB 總分: 100

#1182. 灯塔

统计

灯塔岛是一个形状为凸多边形的岛屿。多边形的每个顶点上都有一座灯塔,提供了美丽的广阔海景。一些灯塔之间由笔直的电车轨道相连。这些轨道中有些可能会相交,但由于没有道岔,电车一旦进入某条轨道,就只能行驶到轨道的另一端才能离开。

鲁莽的 Vladik 最近搞到了一辆电车(通过完全非暴力的手段,其具体过程超出了本题的范围),并将其运到了岛上,他计划进行一次终生难忘的旅行。他希望从某座灯塔附近出发,沿着电车轨道按某种顺序访问若干座灯塔,然后离开岛屿。此外,FBI 也追踪着 Vladik 的足迹来到了岛上。他们非常想见到 Vladik——主要是为了打个招呼,并讨论一下无证驾驶电车是一件多么“合理”的事情。由于 Vladik 目前想避免与 FBI 会面,他访问岛上任何一点后,就绝不能再次经过该点。换句话说,Vladik 的行程应该构成一条没有自交的折线。

Vladik 希望他的行程尽可能长(以欧几里得距离之和计算),这样他就可以向其他 Vladik 炫耀他的壮举。请帮助他——给定岛屿的地图,找出他能采取的最长行程,且过程中不能访问岛上任何一点两次。

输入格式

输入的第一行包含测试用例的数量 $z$。接下来是各个测试用例的描述。

每个测试用例的第一行包含一个整数 $n$ ($3 \le n \le 300$),表示灯塔的数量。接下来 $n$ 行,每行包含两个整数 $x_i$ 和 $y_i$ ($-10^9 \le x_i, y_i \le 10^9$),表示第 $i$ 座灯塔的坐标。灯塔按逆时针方向沿岛屿边界出现的顺序给出。没有三座灯塔共线。下一行包含一个整数 $m$ ($0 \le m \le n(n - 1)/2$),表示电车轨道的数量。接下来 $m$ 行,每行包含两个整数 $v_i$ 和 $u_i$ ($1 \le v_i \neq u_i \le n$),表示由电车轨道连接的灯塔编号。每对灯塔之间最多只有一条轨道。

所有测试用例中灯塔的总数不超过 $3\,000$。

输出格式

对于每个测试用例,输出一个数字:Vladik 行程的最大长度。如果你的答案与标准答案的绝对误差或相对误差不超过 $10^{-6}$,则被视为正确。

样例

输入 1

2
4
0 0
1 0
1 1
0 1
3
1 3
2 4
3 4
4
0 0
1 0
1 1
0 1
4
1 4
4 3
3 2
2 1

输出 1

2.414213562373
3.000000000000

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.