Pro.ID2081 TitleAL086 圆排列问题 Title链接http://10.20.2.8/oj/exercise/problem?problem_id=2081 AC0 Submit3 Ratio0.00% 时间&空间限制描述给定n个大小不等的圆c1 , c2 , ..., cn ,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3 个圆的半径分别为1,1,2时,这3个圆的最小长度的圆排列如图所示。其最小长度为 。
对于给定的n个圆,设计一个优先队列式分支限界法,计算n个圆的最佳排列方案,使其长度达到最小。 输入第一行是一个正整数n ( 1 ≤ n ≤ 20 )。接下来的一行有n个数,表示n个圆的半径。 输出Description 给定n个大小不等的圆c1 , c2 , ..., cn ,现要将这n个圆排进一个矩形框中,且要求各圆与矩形框的底边相切。圆排列问题要求从n个圆的所有排列中找出有最小长度的圆排列。例如,当n=3,且所给的3 个圆的半径分别为1,1,2时,这3个圆的最小长度的圆排列如图所示。其最小长度为 。
对于给定的n个圆,设计一个优先队列式分支限界法,计算n个圆的最佳排列方案,使其长度达到最小。 Input 第一行是一个正整数n ( 1 ≤ n ≤ 20 )。接下来的一行有n个数,表示n个圆的半径。 Output 输出最小圆排列的长度。 (结果保留6个数字,即 123.456 或 56789.1 ) Sample Input 3 Sample Output 7.65685 Author 样例输入3 样例输出7.65685 提示作者 |