***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************
这道课程设计,费不少时间,太麻烦了= =。(明明是能力不够)
~~~~最小生成树:室内布线~~~~
题目要求:
装修新房子是一项颇为复杂的工程,现在需要写个程序帮助房主设计室内电线的布局。
首先,墙壁上插座的位置是固定的。插座间需要有电线相连,而且要布置的整齐美观,即要求每条线都与至少一条墙边平行,且嵌入四壁或者地板(不能走屋顶)。
房主要求知道,要将所有插座连通,自己需要买的电线的最短长度。
另外,别忘了每个房间都有门,电线不可以穿门而过。上图给出了一个有4插座的房间的电线布局。
输入要求:
输入由若干组测试数据组成。
每组数据的第1行包含房间的长、宽、高和插座的个数N(N为一个不超过20的正整数)。
接下去的N行中,第i行给出第i个插座的位置坐标(xi,yi,zi);最后一行包含4个3元组(x1,y1,z1)…(x4,y4,z4),分别是长方形门框的4个角三维坐标。4个数字全部为0表示全部测试结束,不要对该数据任何处理。
注意:这里假设长方体形状的房间完全位于三维直角坐标系的第一象限内,并且有一个角落在原点上。地板位于x-y平面。题目数据保证,每个插座仅属于四面墙中的一面,门上没有插座。要求每段电线的两端必须仅与插座连接,电线之间不能互相交叉焊接。
输出要求: