图论知识点总结3 最小生成树(实时更新)

一、两个基本算法的适用情况

kruskal算法比较常用,适合稀疏图(大多数题目的图都是稀疏图),其复杂度主要与边数m有关。而prim比较适合稠密图,因此常用邻接矩阵存图,复杂度主要与点数n有关。

最短网络

https://www.acwing.com/problem/content/1142/

模板题,用两种算法都可以。

二、kruskal算法的特性

1.繁忙的都市

https://www.acwing.com/problem/content/1144/

生成的最小生成树的最大的边权值最小。

2.联络员

https://www.acwing.com/problem/content/description/1145/

可以从中间开始建立最小生成树,而prim就必须从头开始。

三、先立后破

连接格点

https://www.acwing.com/problem/content/description/1146/

有些题,是需要我们从头开始构建一个最小生成树。这时可以先建一个完全图(或者把合法的边全部建出来)。然后再用最小生成树算法选出最小生成树对应的边。

四、逆向思考,正难则反

兽径管理

https://www.luogu.com.cn/problem/P1340

对于动态加边,每次都要求最小生成树的,可以不用每次都重新跑一遍最小kruskal.只需要从最后的一个最小生成树往前推,只要新加的边不在树上,就不用重跑。

五、超级源点

新的开始

https://www.acwing.com/problem/content/1148/

六、树扩图

七、次小生成树

上一篇:[CF1503C]Travelling Salesman Problem


下一篇:20201005 漆黑列车载运数个谎言,金色丝线将瞬间一分为二,神在夏至祭降下了神谕