对于DIJ
如果边数远小于n^2,对此可以考虑用堆这种数据结构进行优化,取出最短路径的复杂度降为O(1);每次调整的复杂度降为O(elogn);e为该点的边数,所以复杂度降为O((m+n)logn)
(V+E)log(V)
最短路应用
次短路,k短路,最短路径数量,判断负环
负权图(无正边,求最长路
//log 将乘法转换成加法 loga+...+logz=log a*...*z
并查集...
kruskal ElogE+E*alpha(V)
Matrix Tree定理计算生成树计数
所有最小生成树的边权集合相等
枚举最小边,最小边最大...求MST
二分图
所有的奇环都不是二分图,所有的偶环都是二分图
有多少种方案只删一条边使这个图变成二分图
如何判断一个图是二分图,黑白染色判断冲突
二分图最大匹配
左边超级源,右边超级汇
容量都为1,Dinic最大流跑一遍
匈牙利算法(网络流退化版,不断找增广
最优匹配(KM,费用流)
独立集中的点,任意两个没有连边
最大团:点集中,任意两个点都有边相连
求二分图中的最大团
建立没有关系的边,求最大独立集,反向思维...