图论 —— 生成树

【概述】

对一个具有 n 个点的连通图进行遍历,对于遍历后的子图,其包含原图中所有的点且保持图连通,最后的结构一定是一个具有 n-1 条边的树,通常称为生成树

在生成树问题中,最常见的问题就是最小生成树问题,所谓最小生成树,就是对于一个有 n 个点的无向连通图的生成树,其包含原图中的所有点,且保持图连通的边权总和最少的边。

简单来说,对于一个有 n 个点的图,边一定是大于等于 n-1 条的,最小生成树,就是在这些边中选择 n-1 条出来连接所有的 n 个点,且这 n-1 条边的边权之和是所有方案中最小的。

最小生成树具有以下两条性质:

  • 切割性质:连接点 x、y 的边权最小的边必定被生成树包含
  • 回路性质:任意回路/环上的边权最大的边必不被生成树包含

求最小生成树一般有 Prim 算法与 Kruskal 算法,其中,Prim 算法时间复杂度为 O(V*V),与图中边数无关,适合稠密图;Kruskal 算法时间复杂度 为O(ElogE),需要对图的边进行访问,适合稀疏图。

  1. Prim:点击这里
  2. Kruskal:点击这里

【常见问题模型】

在生成树问题中,除了最常见的最小生成树问题外,还有以下常见的问题模型:

  1. 曼哈顿距离最小生成树:点击这里
  2. 次小生成树:点击这里
  3. 最小树形图:点击这里
  4. 最小瓶颈生成树:点击这里
  5. 增量最小生成树:点击这里
  6. 最小瓶颈路:点击这里
  7. 生成树计数:点击这里

【例题】

1.最小生成树

  1. 还是畅通工程(HDU-1233)(Prim)点击这里
  2. Jungle Roads(HDU-1301)(Prim)点击这里
  3. Eddy's picture(HDU-1162)(Prim)点击这里
  4. 最短网络(信息学奥赛一本通-T1350):点击这里
  5. 繁忙的都市(信息学奥赛一本通-T1392)(Prim)点击这里
  6. 最优布线问题(信息学奥赛一本通-T1349)(Prim)点击这里
  7. 继续畅通工程(HDU-1879 )(Kruskal)点击这里
  8. Constructing Roads(HDU-1102)(Kruskal)点击这里
  9. 局域网(信息学奥赛一本通-T1391)(Kruskal)点击这里
  10. 联络员(信息学奥赛一本通-T1393)(Kruskal)点击这里
  11. 连接格点(信息学奥赛一本通-T1394)(Kruskal)点击这里
  12. 城市公交网络建设问题(信息学奥赛一本通-T1348)(Kruskal)点击这里
  13. Pseudoforest(HDU-3367)(Kruskal)点击这里
  14. Connect the Cities(HDU-3371)(Kruskal)点击这里
  15. Building Roads(POJ-3625)(预处理+Prim)点击这里
  16. Built?(AtCoder-2643)(Kruskal+贪心)点击这里
  17. Find the most comfortable road(HDU-1598)(最大生成树+贪心)点击这里
  18. Applese 的大奖(2019牛客寒假算法基础集训营 Day4-G)(限制条件下的最小生成树)点击这里

2.曼哈顿距离最小生成树

  1. 扩散(洛谷-P1661)(朴素的曼哈顿最小生成树+最长边)点击这里
    同题:扩散(信息学奥赛一本通-T1437):点击这里
  2. Object Clustering(POJ-3214)(曼哈顿最小生成树+第k大的边)点击这里

3.次小生成树

  1. The Unique MST(OpenJ_Bailian-1679)(次小生成树)点击这里
  2. Qin Shi Huang's National Road System(HDU-4081)(次小生成树思想)点击这里

4.最小树形图

  1. Command NetWork(POJ-3164)(定根的最小树形图)点击这里
  2. Ice_cream’s world II(HDU-2121)(超级源点的使用)点击这里
  3. Road Repairs(CF-240E)(路径的输出)点击这里

5.最小瓶颈生成树

  1. Out of Hay(POJ-2395):点击这里

6.增量最小生成树

  1. Trail Maintenance(LightOJ-1123):点击这里

7.最小瓶颈路

  1.  营救(洛谷-P1396)(单次查询)点击这里

8.生成树计数

  1. Highways(SPOJ-104)(生成树计数)点击这里
  2. 最小生成树计数(HYSBZ-1016)(最小生成树计数简化版)点击这里
    同题:最小生成树计数(洛谷-P4208):点击这里
  3. 最小生成树计数(HYSBZ-1016)(最小生成树计数加强版)点击这里
  • 12
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值