1902_算法设计例题:凸多边形最优三角剖分(DP)

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

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

Pro.ID

1902

Title

算法设计例题:凸多边形最优三角剖分(DP)

Title链接

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

AC

177

Submit

693

Ratio

25.54%

时间&空间限制

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

    给定凸多边形P各顶点坐标集{v0v1,…,vn-1},保证各顶点坐标依逆时针次序给出。定义由多边形的边和弦组成的三角形上的权函数w(vivjvk) = |vivj| + |vjvk| + |vkvi|,相应于此权函数的最优三角剖分即为最小弦长三角剖分。

    其中|vivj|是点vivj的欧氏距离。要求确定该凸多边形的三角剖分,使得该三角剖分所对应的权,即该三角剖分中诸三角形上权之和为最小。输出该最小值。

    vi= (x1, y1), vj = (x2, y2),则vivj的欧氏距离 = sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );

    输入

    输入的第一行为一个整数n ( 3 ≤ n ≤ 100 ),表示凸多边形P的顶点数。

    接下来有n行,每行由两个整数组成,表示顶点的欧氏坐标xy。( 0 ≤ x, y ≤ 1000 ),按照顺时针方向输入。

    输出

    Description

    给定凸多边形P各顶点坐标集{v0v1,…,vn-1},保证各顶点坐标依逆时针次序给出。定义由多边形的边和弦组成的三角形上的权函数w(vivjvk) = |vivj| + |vjvk| + |vkvi|,相应于此权函数的最优三角剖分即为最小弦长三角剖分。

    其中|vivj|是点vivj的欧氏距离。要求确定该凸多边形的三角剖分,使得该三角剖分所对应的权,即该三角剖分中诸三角形上权之和为最小。输出该最小值。

    vi= (x1, y1), vj = (x2, y2),则vivj的欧氏距离 = sqrt( (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2) );

    Input

    输入的第一行为一个整数n ( 3 ≤ n ≤ 100 ),表示凸多边形P的顶点数。

    接下来有n行,每行由两个整数组成,表示顶点的欧氏坐标xy。( 0 ≤ x, y ≤ 1000 ),按照顺时针方向输入。

    Output

    输出只有一个整数,表示凸多边形P的三角剖分中诸三角形上权值和的最小值,结果保留小数点后3位。

    Sample Input

    4
    0 0
    0 1
    1 1
    1 0

    Sample Output

    1.414

    Hint

    如上图,假设上图为最优解的情况,则输出的最小值为:|v1v3|+|v0v3|+|v3v6|+|v4v6|.

    Author

    样例输入

    4
    0 0
    0 1
    1 1
    1 0

    样例输出

    1.414

    提示

    如上图,假设上图为最优解的情况,则输出的最小值为:|v1v3|+|v0v3|+|v3v6|+|v4v6|.


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部