zoukankan      html  css  js  c++  java
  • 生成树相关问题

    回路性质:如果C是图G上的任意回路, e是回路上权值最大的边, 那么生成树肯定不包含e, 因为选其他的边,明显更优

    增量最小生树, 有m条边,每次加入一条边,如果能形成树,求出最小的生成树,

    思路:

      如果暴力求解,那么要求m遍最小生成树, 时间复杂度是 m*m*logm

      那么根据回路性质,  一棵树加入一条边后,肯定形成一个环, 所以只要删除环上权值最大的边即可

      假设加的边是u--v , 那么只要找到u到v路径上的最大权值和新边的权值比较, 去除大的即可。

      时间复杂度是O(n*m),  需要维护一棵树, 所以用手写的邻接表来存储比较好,  dfs时找到权值最大的边存储的下标,

      然后替换边的时候,也好替换。

    最小瓶颈生成树:求生成树, 是的最大边的权值最小。  其实就是就是最小生成树

    最小瓶颈路:给定加权图G,求出任意两个节点u->v的一条路径, 使得路径上的最大边权最小。要使得最大权值最小, 那么其实就是求最小生成树

          然后任意两点之间路径的最大边权, 可以用dfs来求。

    次小生成树:权值之和排在第二位的生成树,叫错次小生成树

     求出任意两点的最小瓶颈路,  maxCost[u][v]  ,那么当加入边u,v后    形成环, 删除maxCost[u][v]对应的边,那么现在生成树的权值为

    total - maxCost[u][v] + w(u,v)   

    枚举不在生成树中的边, 然后找到最小的total - maxCost[u][v] + w(u,v)   就是最小生成树的权值了

  • 相关阅读:
    漫画 | 一台Linux服务器最多能支撑多少个TCP连接?
    frida hook pthread_create
    mac搜索so中的字符串
    字节字符串和数字互转
    twsited使用延迟项,并发量限制
    常见汇编指令和EFLAGS寄存器对应位的含义
    scrapy设置cookie的三种方式
    G1GC 读书笔记
    SLF4J 适配图
    支付宝和微信提现有办法免费了!
  • 原文地址:https://www.cnblogs.com/justPassBy/p/4687192.html
Copyright © 2011-2022 走看看