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 自动生成**