以下参考《信息学竞赛一本通 提高篇》
前置知识点:
1、生成树:
在一个|V| 个点的无向联通图中,取其中|V|-1条边,并链接所有的顶点,所得到的子图称为原图的一颗生成树。
2、树的属性:
树是图的一种特殊形态。图G是树当且仅当一下任意一个条件成立
1、G有|V|-1条边,无环。
2、G有|V|-1条边,连通。
3、任意两点之间只有唯一的简单路径
4、G连通,但任意删除一条边后就不连通。
3、最小生成树
在一个带权的无向连通图中,各边权和最小的一颗生成树即为原图的最小生成树
4、最小边原则
图中权值最小的边(如果唯一的话)一定在最小生成树上。
5、唯一性定理
对于一个图G,如果图中的边权值都不相同,则图的最小生成树是唯一的,反之不然。
prim算法:
【算法思想】:
prim算法是一种贪心算法,它最初将无向连通图G中所有顶点V分成两个顶点集合VA和Va,在计算过程中VA中的点为已经选好连接入生成树的点,否则属于VB。最开始的时候VA只包含任意选取的图G中的一个点u,其余的点属于VB,每次添加一个VB中的点到VA,该点是集合VB到集合VA中距离最小的一个点。直到V个顶点全部属于VA,算法结束。显然出发点不同,最小生成树的形态就不同,但边权和的最小值是唯一的。
【算法步骤】:
选定图中的任意一个顶点V0,从V0开始生成最小生成树&#