• 140703


    今天木有比赛,算是认真的做了题目。嗯,掌握之前讲的东西而已。


    上午专注的搞了下堆。做了poj2051。

    详细的话,,等我集训结束去整理。代码就先不贴了。。


    上午给老队员讲题,,当然…完全没有讲题本身的意义,,讲了个poj1703,并查集,,然后打算什么时候写下poj1182,差不多的,然后研究下按秩压缩。


    然后是上午讲了图的内容,比较多内容,一下难以接受。(概念之类的是接受的,现在在读代码,然后后期会自己实现一下。)


    图的概念
    Graph Theory
    有向图,带权图
    图的表示,1.邻接矩阵,2.邻接表(方便BFS)


    最小生成树-Prim算法
    取图中任意一个顶点 v 作为生成树的根,之后往生成树上添加新的顶点 w。在添加的顶点 w 和已经在生成树上的顶点v 之间必定存在一条边,并且该边的权值在所有连通顶点 v 和 w 之间的边中取值最小。之后继续往生成树上添加顶点,直至生成树上含有全部顶点为止。


    -kruskal算法
    集合T表示已经表示已经选择的边,每次在E-T
    中选择权值最小的边,添加到T,且满足T不产生
    回路。当T的大小为V-1时算法终止。




    单源最短路径
    -Dijkstra 算法
    设源点为 v0,w(u, v)表示边( u, v )的权值
    当u,v之间没有边,w( u, v ) = inf
    L :表示当前从源点到各个结点的最短路径
    S :已求得最短路径的结点集合
    (1)L( v0 ) = 0, S = 空集
    (2)选取最小的L(u),令S = S + { u };对所有v 属于V – S,令L(v) = min(L(v), L(u) + w(u,v))重复(2)直至所有点的最短路径被求出


    每对顶点间的最路距离
    -Floyd 算法
    for( k = 0; k < n; k++ )
      for( i = 0 ; i < n; i++ )
      for( j = 0; j < n; j++ )
    if( dist[ i ][ j ] > dist[ i ][ k ] + dist[ k ][ j ] )
       dist[ i ][ j ] = dist[ i ][ k ] + dist[ k ][ j ];

    当然,还有很多关于图的基本操作,比如说判断是否成环等等的。需要慢慢研读,这东西不是一下子的事情。加油,fighting~


    v拓扑排序:

       1094、1270、2367

    v最小生成树:

       1258、2421、2485、1679、1751、2075、

    v最短路:

       1502、1797、1847、2139、2607、  1125、2240、1161、1556、1603、2263、2502、3268

    v一些图论、网络流入门题总结、汇总:

    http://hi.baidu.com/zfy0701/blog/item/b8332b5c7b2dd545fbf2c052.html



    恩,今天就这些,,明天要安排组队了。希望不和奇葩在一起

  • 相关阅读:
    isMemberOf与isKindOf的区别
    当你的工程出现了问题,在别的电脑上可以正常运行。你该怎么做。。
    iOS 声明属性关键字的总结
    UISegmentedControl方法与属性的总结
    UILabel与UIFont的用法和属性的一些总结
    UIActivityIndicatorView控件的属性和方法
    第四百六十一天 how can I 坚持
    《Java基础知识》Java集合(Collection)
    《Java基础知识》Java线程的概念
    《Java基础知识》Java断言
  • 原文地址:https://www.cnblogs.com/shengrang/p/3843485.html
Copyright © 2020-2023  润新知