zoukankan      html  css  js  c++  java
  • 最短路的一点心得

    差不多最短路的题目做的差不多了

    主要三种算法:

    1、FLOYD:个人比较喜欢使用,不但可以快速计算计算多源最短路,也可以判断图的连通性。时间复杂度是(顶点^3)

    2、DIJK:从点的角度计算单源最短路比较方便吧,可以用邻接表优化(没用过,呵呵)。时间复杂度(顶点^2(朴素),顶点*log(顶点))

    3、SPFA+静态邻接表+队列储存:是从边的角度计算单源最短路,比较牛逼的算法,因为时间复杂度比较小(边*k),其中K是常数,

    注意用前两种算法时,因为这两种算法是从顶点思考,所以要小心重边的情况(有时题目没说明但自己要小心),每次读取边取小即可,用SPFA就没关系了

    网上说K~2,不过实际使用时K估计接近10,因为每个顶点差不多连10条左右的边。

    题型:

    1、直接求单源起点最短路

    2、求单源起点最短路+单源终点最短路,可以通过map矩阵转置,两次dijk算法求出

    3、顶点有权值的单源起点最短路:先求各点到起点的最短路,再分别与各点权值相乘的总和

    4、顶点有权值的单源起点最短路变型:求法同上

    5、顶点有权值的多源起点最短路:数据小的话用FLOYD实现,大的话一般要用SPFA再枚举起点求的

    6、有多个连通图的图之间点的最短路径问题:先用FLOYD求出图的连通性,再枚举图各个连通图之间的点的最短路

    ……

    差不多了,接着是最小生成树的学习

  • 相关阅读:
    176. Second Highest Salary
    175. Combine Two Tables
    172. Factorial Trailing Zeroes
    171. Excel Sheet Column Number
    169. Majority Element
    168. Excel Sheet Column Title
    167. Two Sum II
    160. Intersection of Two Linked Lists
    个人博客记录
    <meta>标签
  • 原文地址:https://www.cnblogs.com/huhuuu/p/1956332.html
Copyright © 2011-2022 走看看