• 再畅通工程(最小生成树)


    题目描述:还是畅通工程

    某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。

    输入描述:

    测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N ( < 100
    );

    随后的N(N-1)/2行对应村庄间的距离,

    每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间的距离。

    为简单起见,村庄从1到N编号。
    当N为0时,输入结束,该用例不被处理。

    输出描述:

    对每个测试用例,在1行里输出最小的公路总长度。

     算法分析:最小生成树至少包含一个最小边;每次找最小的边;

    若成环,则丢弃,继续遍历下一个边

    (判断是否会成环:若边两点属于一个集合,)

    反证:若一个最小生成树,不包含最小边

         用最小边,替换其中一条边,得到的更小的生成树(则矛盾)

    代码实现:

     

    易错细节:1.min1的大小应该大于n*(n-1)/2

    (1)虽然数组开小了,但没说明内存问题(很难发现)

     

     

     

     

     

     

     

     

  • 相关阅读:
    ElasticSearch安装和kibana控制台安装
    CAP&Base理论
    Sentinel结合Nacos实现配置持久化(全面)
    Springboot发送邮件
    Yolov7代码解析
    自动化网络图软件
    软件工程-大学体育馆管理系统用例图
    React通过ref获取子组件的数据和方法
    swift 页面跳转
    【Hive---02】hive概述『 what | 优缺点 | 架构 | Hivevs MySQL』
  • 原文地址:https://blog.csdn.net/2301_79140115/article/details/134089709