POJ 1679 The Unique MST 判断最小生成树是否唯一/次小生成树

题目链接:

1679




题意:

给出 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    则说

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值