SP3006 LINE - Connect Line Segments
题目描述
你的儿子阿尼沉迷于一个叫做「连接线段」的谜题。
在这个谜题中,你会得到一组位于二维平面上的线段。你可以添加一些新线段,每个新线段连接两条已有线段的端点。目标是将所有给定的线段连接成一条尽可能短的单一折线。这条折线可以自交。
阿尼已经用他自己的一套方法解决了很多问题,但他想知道自己的解法是不是最优解。他知道你擅长编程,所以请求你编写一个程序来验证他的方法。
请帮助你亲爱的儿子阿尼验证他的解法。
输入格式
输入包含多组测试数据。
每组测试数据的第一行是一个整数 $n$($2 \le n \le 14$),表示初始的线段数量。接下来的 $n$ 行描述这些线段。第 $i$ 行包含四个实数:$x_{i,1}$、$y_{i,1}$、$x_{i,2}$ 和 $y_{i,2}$,范围在 $-100$ 到 $100$ 之间。它们分别表示第 $i$ 条线段的两个端点坐标 $(x_{i,1}, y_{i,1})$ 和 $(x_{i,2}, y_{i,2})$。
输入以一行单独的 `0` 结束表示结束。
输出格式
对于每组测试数据,输出测试数据编号和最小长度,保留五位小数。
说明/提示
变量取值范围如下:
- $2 \le n \le 14$
- $-100 \le x_{i,1}, y_{i,1}, x_{i,2}, y_{i,2} \le 100$
**本翻译由 AI 自动生成**