摘要:
堆优化版的Dijkstra算法 稀疏图 找最小距离这一步是最慢的,在一堆数中找一个最小的数,所以可以用堆优化,可以变为O(1) 用堆来存储,所有点到起点的最短距离 然后修改其他数的时间复杂度每次是log n,一共修改m次 这里的堆有两种实现方式 1.手写堆:好处:可以时时刻刻保证堆里面只有n个数,支 阅读全文
posted @ 2020-07-25 02:44
kyk333
阅读(251)
评论(0)
推荐(0)
摘要:
稠密图用邻接矩阵 稀疏图用邻接表 最短路问题 只有一个起点是单源 多个起点是多源 n是点的数量,m是边的数量 朴素Dijkstra算法的时间复杂度和边数无关,适合稠密图(边数较多时),m和n ^ 2一个级别时 堆优化版的Dijkstra算法适用于稀疏图,n和m一个级别 SPFA算法是对Bellman 阅读全文
posted @ 2020-07-25 02:43
kyk333
阅读(175)
评论(0)
推荐(0)
摘要:
图的宽搜的一个经典应用就是求拓扑排序 拓扑排序是针对有向图而言,无向图没有拓扑序列 比如这个有向图 图中的边一共是1到2,2到3,1到3,对于每条边都是起点在终点的前面 1 2 3就是一个拓扑序列,都是从前指向后的 并不是所有图都有拓扑序列 只要有一个环,无论如何都不可能有拓扑序列 一个有向无环图, 阅读全文
posted @ 2020-07-25 02:41
kyk333
阅读(2799)
评论(0)
推荐(0)
摘要:
因为这道题的边长为1,所以可以用宽搜 1 #include <bits/stdc++.h> 2 using namespace std; 3 const int N = 100010; 4 int h[N], e[N], ne[N], idx; 5 int d[N]; 6 int n, m; 7 v 阅读全文
posted @ 2020-07-25 02:40
kyk333
阅读(146)
评论(0)
推荐(0)
摘要:
树和图有两种存储方式,树是一种特殊的图,树是无环连通图 图分为有向图和无向图,无向图是一种特殊的有向图 所以就只需要考虑有向图怎样存储 有向图的存储有两大类 第一大类是用得比较少的邻接矩阵,就是开个二维数组g[a][b]存储a到b这条边的信息,这条边有权重就记录权重,没权重就记录这条边是否存在,0或 阅读全文
posted @ 2020-07-25 02:39
kyk333
阅读(165)
评论(0)
推荐(0)

浙公网安备 33010602011771号