24936-8 圆排列问题

2493   6-8 圆排列问题

题目描述

给定 n个大小不等的圆c1 , c2 , ……, cn ,现要将这 n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3 个圆的半径分别为1,1,2时,这3个圆的最小长度的圆排列如图所示。其最小长度为2 + 4*√ 2(说明:根号2) 。


图6-3 圆排列问题

对于给定的n个圆,设计一个优先队列式分支限界法,计算n个圆的最佳排列方案,使其长度达到最小。

输入格式:

输入数据第一行有1个正整数n (1≤n≤20)。接下来的1行有n个数,表示n个圆的半径。

输出格式:

将计算出的最小圆排列的长度输出

输入样例 复制
3
1 1 2
输出样例 复制
7.65685

说明

0
0
通过提交
时空限制1000ms/128mb
题目来源
评测方式在线评测
题目类型
难        度