hdu_1879_继续畅通工程_kruscal_prim_再续

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1879

具体代码参见:http://blog.csdn.net/allianzcortex/article/details/42192829,之前在博客中的畅通工程第一序列。

问题分析: 在原来问题的基础上增加了一个标示位,如果flag=1的话说明已经修建过,flag=0的话说明还未被修建,要求最短路程。

我一开始的思路是将已经修剪过的点进行合并,如:1 2,那么只存在一个点,从而将问题简化。

因为Kruscal本身已经用到了并查集,如果要将点合并的话,就需要再一个序列,这是不能接受的。

最后还是参照结题报告,看到题目中的“贪心”,突然间就想起来Kruscal其实就是基于路径最小的贪心算法,那么我们就将已经联通的点wweight置0,在排序时确保一定放在最前面,这样就避免了对距离的讨论。  

prim算法也是同样,将距离置0,在比较的时候不可能再小。

还是解题经验的问题啊。~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值