- 待补知识点:
- 二分图
- 技巧(排序+去重)
sort(alls.begin(),alls.end());
alls.erase(unique(alls.begin(),alls.end()),alls.end());
一、DFS
算法实现
总结的不好。
二、BFS
算法实现
三、拓扑排序(会写了)
四、最小生成树
1.prim
时间复杂度:O(n^2)或者O(V^2)V是点数目, E是边数目
8.13更 prim记录的是离【已选点集】的距离,而不是到点的距离
而不是
d[j] = min(d[j], d[t] + g[t][i]);
2. Kruskal
时间复杂度:O(E·logE)V是点数目, E是边数目
标准Kruskal算法及时间复杂度分析_kruskal算法时间复杂度分析-CSDN博客
859. Kruskal算法求最小生成树 - AcWing题库
说明:针对最小生成树算法,使用prim还是kruskal算法,要注意数据集
- 稠密图——>prim
- 稀疏图——>kruskal
如下:
(1)prim数据集(题干其他信息完成一致)
(2)kruskal数据集(题干其他信息完成一致)
五、判断二分图
二分图 当且仅当 图中不含奇数环(很好地想到1 2 1 2 1 2的染色)
1.染色法(好理解)
会写,之后不一定能做出来!
2.匈牙利算法
时间复杂度:O(mn),但一般小于O(mn)
不太熟练。