图的建立
- 邻接矩阵 —— 适用于稠密图(m接近于n2)
- 邻接表—— 适用于稀疏图(m接近于n)
DFS与BFS
拓扑排序
最短路(难点在于从题目里提取出信息,建图,侧重于实现算法)
- 单源最短路
一般在图论中,源点就是起点,其实也就是单起点的最短路。-
所有边权都是正数
(Djikstra基于贪心的思想)—— 这也是为何不能用Djikstra解决负权图的关键
例如: -
存在负权边
-
- 多源汇最短路
汇一般指的是终点,多源汇最短路的意思就是起点和终点都会有多个。-
Floyd O(n3)——模板
-
(Floyd基于动态规划的思想): d [ k , i , j ] d[k, i, j] d[k,i,j]表示从点 i i i到点 j j j,途中经过的点的编号不超过 k k k的所有路径的最小值。
-
传递闭包:如果 i i i能够到 j j j, j j j能够到 k k k,那么我们就可以在 i i i和 k k k之间连一条边,表示 i i i能到 k k k,对整个图上的所有点都进行一次这个操作,得到的图就成为原图的传递闭包。
-
最小生成树
K r u s k a l Kruskal Kruskal——时间复杂度 O ( m l o g n ) O(mlogn) O(mlogn)——适用于边数小于 n 2 n^2 n2的图
P r i m Prim Prim——时间复杂度 O ( n 2 ) O(n^2) O(n2)——适用于边数大于 n 2 n^2 n2的图——模板
二分图:染色法、匈牙利算法
染色法判定二分图:—— 黑白染色
二分图最大匹配:—— 匈牙利算法(转载)
二分图最大权匹配:—— KM算法