2089_AL095圆排列问题

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

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

Pro.ID

2089

Title

AL095 圆排列问题

Title链接

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

AC

0

Submit

3

Ratio

0.00%

时间&空间限制

  • Time Limit: 1200/400 MS (Java/Others)     Memory Limit: 131072/65536 K (Java/Others)
  • 描述

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

    解圆排列问题的一个随机化算法如下。

    static void Circle_search(int []x,int n)
    {
        random_perm(x);
        boolean found=true;
        while(found){
            found=false;
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(MyMath.swap(x,i,j) reduces length){
                        MyMath.swap(x,i,j);
                        found=true;
                    }
            }
    }
    其中,random_perm(x)产生x 的一个随机排列。

    根据上述算法框架,设计一个随机化算法,对于给定的n个圆,计算n个圆的最佳排列方案,使其长度尽可能小。

    输入

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

    输出

    Description

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

    解圆排列问题的一个随机化算法如下。

    static void Circle_search(int []x,int n)
    {
        random_perm(x);
        boolean found=true;
        while(found){
            found=false;
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(MyMath.swap(x,i,j) reduces length){
                        MyMath.swap(x,i,j);
                        found=true;
                    }
            }
    }
    其中,random_perm(x)产生x 的一个随机排列。

    根据上述算法框架,设计一个随机化算法,对于给定的n个圆,计算n个圆的最佳排列方案,使其长度尽可能小。

    Input
    输入第一行是个正整数n ( 1 <= n <= 20 )。接下来的一行有n个数,表示n个圆的半径。
    Output
    输出最小圆排列的长度。输出结果保留6位数字。
    Sample Input
    3
    1 1 2
    Sample Output
    7.65685

    样例输入

    3
    1 1 2

    样例输出

    7.65685

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部