题目链接:
题意:
给出 M个点N条边 求它的的最小生成树 不唯一则输出:Not Unique!
题解:
prim:判断“最小生成树是否唯一”可以理解为“最小生成树和次小生成树是否相等”
求次小生成树的步骤如下
1)先求出最小生成树T,在prim的同时,用一个矩阵maxx[u][v]记录在树中连接u-v的路径中权值最大的边.
2)枚举所有不在T中的边map[u][v],加入边u-v,删除权值为maxx[u][v]的边;
3)找到MST-maxx[u][v]+map[u][v]的最小值即为次小生成树的值,而如果
maxx[u][v]==map[u][v] 则说明最小生成树和次小生成树相等.
kurskal:
通过kurskal算法标记最小生成树中的每条边 used=1, 然后每次删除一条(标记used==1且权值与其他边的相同的边)
再进行kruskal算法 如果求得的值==MST 则说