2081_AL086圆排列问题

2022-5-16 18:18| 发布者: Hocassian| 查看: 51| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-3-89504308828800-Problem List-采集的数据-后羿采集器.html

Pro.ID

2081

Title

AL086 圆排列问题

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=2081

AC

0

Submit

3

Ratio

0.00%

时间&空间限制

  • Time Limit: 1000/500 MS (Java/Others)     Memory Limit: 65536/65536 K (Java/Others)
  • 描述

    给定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
    1 1 2

    Sample Output

    7.65685

    Author

    样例输入

    3
    1 1 2

    样例输出

    7.65685

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部