[kuangbin带你飞]专题六 最小生成树
Contents
Krusal 时间复杂度 $O(m\log m)$
Prim 时间复杂度 $O(n^2)$,二叉堆优化至 $O(m\log n)$。Prim 主要用于稠密图。
1. POJ1251 Jungle Roads
题意:给出 n 个村庄,n - 1 个村庄连接的村庄以及道路及其每月维护费,求使村庄连通的每月最小花费。
模板题,上网查了才发现一直 RE 是 scanf 的锅。
|
|
2. POJ1287 Networking
题意:在一个区域内装网络,给定一系列点和可能的电缆,使任意点连接求电缆长度最小值。
|
|
3. POJ2031 Building a Space Station
题意:三维空间中给出 n 个球体的坐标和半径,如果球体未相通,需要建立一些通道连接所有球体,表面相切可认为相通,求通道的最短距离。
任意两个球相交距离为0,不相交圆心之间距离减去半径和为距离,用最小生成树做即可,G++ 用 double 会 Wa
|
|
4. POJ2421 Constructing Roads
题意:给出 $n$ 个点和 $n\times n$ 的邻接矩阵,q 条已连好的边,求使点连通还需建立道路长度最小值。
适合用 krusal,已经连通的点先合并。
|
|
5. ZOJ1586 QS Network
题意:有一种叫 QS 的智能生物,两个 QS 想要连接,需要购买两个网络适配器和一段网络电缆,一个网络适配器只能只能在单个连接中使用。通信过程中,QS 将消息广播到它所有连接的 QS,接收到消息的 QS 将消息广播到所有连接的 QS,直到所有 QS 收到消息。给出 QS 数目 n,每个 QS 网络适配器价格,$n\times n$ 矩阵,i 行 j 列 表示 i,j 之间电缆费用,求连通 n 个点最小花费。
网络适配器价格加入边中,用 prim。
|
|
6. POJ1789 Truck History
题意:7 个小写字母表示一个编码,编码距离的定义为 7 个位置上不同字符的个数,n 个编码,求连接所有编码的最短距离。
|
|
7. POJ2349 Arctic Network
题意:s 个卫星频道,p 个前哨站,给出前哨站坐标,两个前哨站可以通过卫星频道或无线电通信,卫星频道无视距离,无线电两者距离不能超过 d,所有前哨站可以直接或间接通信情况下,求 d 的最小值。
最小生成树求出 p - 1 条边从小到大排序,后 s - 1 条用卫星通信,输出第 p - s 条边,即 d[n - m + 1]。
|
|
8. POJ1751 Highways
题意:给出 n 个城镇及其坐标,已经修好的 m 条告诉公路,为使所有城镇连通,求还需修建高速公路的最小长度。
已存在的边权为 0,用 pre 记录相邻结点。
|
|
9. POJ1258 Agri-Net
题意:$n\times n(3\le n\le100)$ 的邻接矩阵,表示 $n$ 个村庄之间的距离,Farmer Jorn 要把所有村庄连接起来,求最短距离。
|
|
10. POJ3026 Borg Maze
题意:Borg 是一种强大的类机器人种族,在迷宫中帮助 Borg 找出最小的距离同化外星人,每当一个外星人被同化或者在搜索起点,集团可能会分裂成两个或以上集团。
bfs 每个 A 点与 S 点到其他点距离建图,之后用 prim 即可。
|
|
11. POJ1679 The Unique MST
题意:给定连通无向图,判断最小生成树是否唯一。
枚举最小生成树的每一条边,删除后求最小生成树,结果相同不唯一,删除边后 krusal 里 cnt < n - 1
判断图是否为树,不是最小生成树唯一。
|
|
12. HDU1233 还是畅通工程
题意:求最小生成树。
模板题,完全图用 prim。
|
|
13. HDU1301 Jungle Roads
和第一题完全一样。
14. HDU1875 畅通工程再续
题意:给出 n 个小岛坐标,在小岛间建桥连通所有岛,条件是小岛间距离属于 $[10,1000]$,价格 100 元/米,求最小造价。
|
|