zoukankan      html  css  js  c++  java
  • [原]基础最小生成树代码留存


    最小生成树的水题,在这里讲一下kruskal算法,权当温故:

    Kruskal的关键在于对于边权从小到大排序,然后在“排好序的基础上”用并查集判断 E(u , v)上两个顶点u,v 是否在同一个连通分量中,不在,则记录该边权,合并两点。为什么要排序呢?假设从无到有建立一棵最小生成树,则对于从小到大排好序的边集,最先加入合并(加入条件参照上一句话)的N-1条边一定是最优的。

    这里,带路径压缩的并查集操作,可以高效地合并、判断两个点是否在同一个连通分量中,时间可视为常数级的。

    ========Hi~ o(* ̄▽ ̄*)ブ ===========我是呆萌の分割线=================



    ① HDU1102-Constructing Roads【最小生成树-kruskal(water)】

    题意就不翻译了。

    关于这题的AC代码如下,不是很规范的Kruskal:

    {CSDN:CODE:328914}


    之前由于忘了把vector  clear,WA了N+1次。。。。T^T血的教训惹~~~


    ②HDU-1863-畅通工程-【基础最小生成树-Kruskal】

    AC代码:

    {CSDN:CODE:323874}



    ③HDU-1233-还是畅通工程-【基础最小生成树-Kruskal】

    AC代码:

    {CSDN:CODE:328913}

    ④HDU-1875 -畅通工程再续---基础最小生成树★

    AC代码:

    {CSDN:CODE:328915}


    作者:u011652573 发表于2014-5-2 21:32:36 原文链接
    阅读:36 评论:0 查看评论
  • 相关阅读:
    反射API(二)
    反射API(一)
    session一二事
    自定义session的存储机制
    JavaScript 入门笔记
    PHP引用赋值
    九九乘法口诀表
    PHP流程控制笔记
    PHP函数总结 (七)
    Linux程序编辑器习题汇总
  • 原文地址:https://www.cnblogs.com/ZiningTang/p/3834743.html
Copyright © 2011-2022 走看看