排列树问题 对于给定的n个圆,编程计算最小长度排列。

时间:2012-06-25 12:01:29
【文件属性】:
文件名称:排列树问题 对于给定的n个圆,编程计算最小长度排列。
文件大小:3KB
文件格式:TXT
更新时间:2012-06-25 12:01:29
排列树问题 Description 试设计一个用回溯法搜索排列空间树的函数。该函数的参数包括结点可行性判定函数和上界函数等必要的函数,并将此函数用于解圆排列问题。 圆排列问题描述如下:给定n 个大小不等的圆c1 , c2 ,..., cn ,现要将这n 个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n 个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3 个圆的半径分别为1,1,2 时,这3 个圆的最小长度的圆排列是1,2,1,其最小长度为2 + 4*sqr(2)。 编程任务: 对于给定的n个圆,编程计算最小长度排列。 Input 输入由多组测试数据组成。 每组测试数据输入的第一行是1 个正整数n,表示有n个圆。第2行有n个正数,分别表示n个圆的半径。 Output 对应每组输入,输出的每行是计算出的最小长度,保留3 位小数。 Sample Input 3 1 1 2 Sample Output 7.657

网友评论