专题四-图论总结

来源:互联网 发布:cf手游m249天羽数据 编辑:程序博客网 时间:2024/06/05 08:54

  在本专题中,有着很多内核相同的题目。把顶点和边的权值对应到代码中,求出最小生成子树或者运用并查集求出最小连通子图、最短路径,正是图的内涵所在。而且,各种算法大都以贪心为基础,对边的权值排序,然后运用并查集进行处理。prim算法用于稠密图,因为算法本身是从两个不连通的集合选取边最小的点,最终得到最小生成树;kruskal算法用于稀疏图,因为算法原则是选边,如果边数太多的话,并不适用。然后是求出最短路径的算法,SPFA其实就是Bellman-Ford的一种队列实现,减少了冗余,即松驰的边至少不会以一个d为∞的点为起点。松弛技术是这些算法的关键所在,其伪代码如下:

Relax(u,v,w)

      if(d[v]>d[u]+w(u,v))

            d[v]=d[u]+w(u,v)

数据结构中同样讲述过图论,但是并没有像ACM这样面向实际去解决问题。拥有了这些思想,把问题向这些模板靠拢,进而写出代码,解决问题,是图论专题留给我的最大收获。

0 0