博客
关于我
Shortest Path(牛客每日一题)思维,图论
阅读量:747 次
发布时间:2019-03-22

本文共 643 字,大约阅读时间需要 2 分钟。

为了寻找n个点分成n/2对且距离总和最小的方式,我们需要构建一个包含所有点的完全图,计算每对点之间的欧氏距离,然后应用最优匹配算法找出使总距离最小的配对方式。以下为详细步骤:

  • 构建完全图:首先将每个点与其他所有点计算欧氏距离,建立一个完全图,其中节点为各点,边权重为两点之间的距离。

  • 寻找最优匹配:使用最大权最小匹配算法(如Edmonds算法)或采用邻接矩阵化简的方法,寻找总权重最小的匹配。

  • 计算总距离:将匹配中的所有边的权重相加,得到最小总距离。

  • 这种方法确保了所有可能的配对都被考虑到,且找到了最小的总距离配置。下面将通过示例来说明这一过程。

    示例:假设n=4,点坐标为A(0,0),B(1,0),C(0,1),D(1,1)。

  • 计算所有点对的距离:

    • AB: units=1
    • AC: units=√2
    • AD: units=√2
    • BC: units=1
    • BD: units=1
    • CD: units=1
  • 构建完全图后,将所有可能的匹配列出:

    • AB+CD → 总距离=1+1=2
    • AC+BD → 总距离=√2+1=√3≈1.732
    • AD+BC → 总距离=√2+1≈1.732
    • CD+AB同上,总距离=2
    • 其他配对如中点配对可能会导致更大总距离
  • 比较以上结果,最小总距离为√3≈1.732。通过Edmonds算法或其他匹配算法,系统化地筛选最优配对,避免人为错误。

  • 以上步骤展示了如何系统化地解决问题,确保找到的配对确实是最小总距离的。通过编写程序或使用图处理工具,可进一步优化计算过程。

    转载地址:http://ziewk.baihongyu.com/

    你可能感兴趣的文章
    MySQL底层概述—5.InnoDB参数优化
    查看>>
    MySQL底层概述—6.索引原理
    查看>>
    MySQL底层概述—7.优化原则及慢查询
    查看>>
    MySQL底层概述—8.JOIN排序索引优化
    查看>>
    MySQL底层概述—9.ACID与事务
    查看>>
    Mysql建立中英文全文索引(mysql5.7以上)
    查看>>
    mysql建立索引的几大原则
    查看>>
    Mysql建表中的 “FEDERATED 引擎连接失败 - Server Name Doesn‘t Exist“ 解决方法
    查看>>
    MySQL开源工具推荐,有了它我卸了珍藏多年Nactive!
    查看>>
    MySQL异步操作在C++中的应用
    查看>>
    Mysql当前列的值等于上一行的值累加前一列的值
    查看>>
    MySQL当查询的时候有多个结果,但需要返回一条的情况用GROUP_CONCAT拼接
    查看>>
    MySQL必知必会(组合Where子句,Not和In操作符)
    查看>>
    MySQL必知必会总结笔记
    查看>>
    MySQL快速入门
    查看>>
    MySQL快速入门——库的操作
    查看>>
    mysql快速复制一张表的内容,并添加新内容到另一张表中
    查看>>
    mysql快速查询表的结构和注释,字段等信息
    查看>>
    mysql怎么删除临时表里的数据_MySQL中关于临时表的一些基本使用方法
    查看>>
    mysql性能优化
    查看>>