结论1
     次小生成树可由最小生成树换一条边得到.

证明:
    可以证明下面一个强一些的结论:
    T是某一棵最小生成树,T0是任一棵异于T的树,通过变换
T0 --> T1 --> T2 --> ... --> Tn (T)  变成最小生成树.
所谓的变换是,每次把Ti中的某条边换成T中的一条边, 而
且树T(i+1)的权小于等于Ti的权.
    具体操作是:
    step 1. 在Ti中任取一条不在T中的边uv.
    step 2. 把边uv去掉,就剩下两个连通分量A和B,
            在T中,必有唯一的边u'v' 连结A和B.
    step 3. 显然u'v'的权比uv小 (否则,uv就应该在T中).
            把u'v'替换uv即得树T(i+1).
    特别地:取T0为任一棵次小生成树,T(n-1) 也就是次小生成树且
    跟T差一条边. 结论1得证.

算法:
    只要充分利用结论1, 即得V^2的算法. 具体如下:

step 1.  先用prim求出最小生成树T.
         在prim的同时,用一个矩阵max[u][v] 记录 在T中连结任意两点u,v的唯一的
         路中权值最大的那条边的权值. (注意这里).
         这是很容易做到的,因为prim是每次增加一个结点s, 而设已经标号了的结点
         集合为W, 则W中所有的结点到s的路中的最大权值的边就是当前加入的这条边.
         step 1 用时 O(V^2).
step 2.  枚举所有不在T中的边uv, 加入边uv则必然替换权为max[u][v]的边.

故总时间为O(V^2).

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=1881602

次小生成树的某些结论及其算法O(V^2)相关推荐

  1. 644-最小生成树Prim普里姆算法

    最小生成树Prim普里姆算法理论 最小生成树的应用场景:顶点代表城市的话,比如说修路,架设电线,网络,怎么让这几个城市连起来,而且花费是最小的,成本最低,权值是最小的,但是不允许形成环路. 第一步的U ...

  2. NYOJ 118 修路方案(次小生成树)

    修路方案 时间限制:3000 ms  |  内存限制:65535 KB 难度:5 描述 南将军率领着许多部队,它们分别驻扎在N个不同的城市里,这些城市分别编号1~N,由于交通不太便利,南将军准备修路. ...

  3. 图论 —— 生成树 —— 次小生成树

    [概述] 对于给定的无向图 G=(V,E),设 T 是图 G 的一个最小生成树,那么,对于除 T 外的第二小的生成树 T' 即为图的次小生成树. 简单来说,最小生成树是生成树的最小解,次小生成树是生成 ...

  4. 非严格次小生成树+严格次小生成树

    非严格次小生成树+严格次小生成树 非严格次小生成树:首先使用最小生成树算法将最小生成树求出来,将生成树建图,然后用倍增维护树上的最大值. 考虑将所有的非树边一次加入最小生成树,并将新边与最小生成树形成 ...

  5. 【次小生成树】4.秘密的牛奶运输

    题目描述 Farmer John 要把他的牛奶运输到各个销售点.运输过程中,可以先把牛奶运输到一些销售点,再由这些销售点分别运输到其他销售点. 运输的总距离越小,运输的成本也就越低. Farmer J ...

  6. 最小生成树、次小生成树

    一.最小生成树 说到生成树首先要解释一下树,树是一个联通的无向无环图,多棵树的集合则被称为森林. 因此,树具有许多性质: 1.两点之间的路径是唯一的. 2.边数等于点数减一. 3.连接任意两点都会生成 ...

  7. HDU 4081 Qin Shi Huang's National Road System (次小生成树算法)

    转载自http://blog.csdn.net/shuangde800 D_Double 题目: Problem Description During the Warring States Perio ...

  8. 疯子的算法总结11--次小生成树+严格次小生成树

    一.总体思路 首先,我这一题的思路是倍增LCA+Kruskal 首先,kruskal求最小生成树  不会的戳这里 求次小生成树 倍增  LCA 关键在于次小生成树怎么求: 问自己一些问题 怎么求不严格 ...

  9. 一棵树的生成树有几颗_次小生成树(树剖,生成树)

    生成树的概念: 在一个无向图中,设顶点数为\(n\),取其中\(n-1\)条边并使所有点相连,所得到的一棵树即为生成树. 最小生成树: 如果还没有接触过生成树的同学,欢迎戳->最小生成树详解 次 ...

  10. (luogu4180) [Beijing2010组队]次小生成树Tree

    严格次小生成树 首先看看如果不严格我们怎么办. 非严格次小生成树怎么做 由此,我们发现一个结论,求非严格次小生成树,只需要先用kruskal算法求得最小生成树,然后暴力枚举非树边,替换路径最大边即可. ...

最新文章

  1. Android onMeasure过程分析
  2. 【数据挖掘】拉普拉斯修正 ( 判别模型 | 概率模型 | 贝叶斯分类 | 拉普拉斯修正 | 朴素贝叶斯分类应用场景 | 朴素贝叶斯优缺点 )
  3. 掌握这些 NumPy Pandas 方法,快速提升数据处理效率!
  4. JS 事件绑定的几种方式 小笔记
  5. ABBYY FineReader 12PDF选项卡之图像及文字设置
  6. MySQL(一):分别基于mysqldump、lvm2、xtrabackup三种方式实现备份恢复
  7. ubuntu18.4 中 mysql5.7 全完卸载与安装
  8. 【转载】白话经典算法系列之三 希尔排序的实现
  9. C++算法之遗传算法及实现
  10. 网络层-IP地址和MAC地址
  11. 如何将你的网站提交到Google
  12. 什么是 Pandas?
  13. Hadamard积的介绍
  14. 应用楼宇自控系统降低建筑物设备成本
  15. 教育专家李彦良谈双减后的素质教育和智慧教育
  16. 引领边吃边逛新时尚 9月19龙德广场B1“潮人街区”正式开街迎客
  17. MODEL COMPRESSION VIA DISTILLATION AND QUANTIZATION
  18. 解决 : ERROR: Could not install packages due to an EnvironmentError: [Errno 2] No such file or directo
  19. 最全RAID( RAID 0、RAID 1、RAID 5、RAID 10 ······) 以及它们的优缺点以及原理解析
  20. android3d编程,Android编程实现3D立体旋转效果的实例代码

热门文章

  1. 经典——也许这就是方向
  2. 华为/华三:OSPF多区域配置
  3. PPP协议的配置(以H3C模拟器为例)
  4. python中的变量的学习
  5. Vector Math for 3D Computer Graphics (Bradley Kjell 著)
  6. python yield,到这个层次,才能叫深入哈
  7. [swift 进阶]读书笔记-C2P3_Set、 C2P4_Range
  8. Springboot搭建SSM+JSP的web项目
  9. Java语言中的----条件循环
  10. 这家保险公司的第三朵云为什么选择Power?