(这几天身体不舒服,没咋学习和记录TWT)
3.30日学习内容: 搜索与图论(3)看了一半
知识点总结:
最小生成树: 一般只考无向图
1.普利姆算法:
(1)朴素版prim O(n^2)
(2)堆优化版prim O(mlogn) //基本不用
2.克鲁斯卡尔算法(Kruskal) O(mlogm)
二分图: 一个图使二分图当且仅当图中不含奇数环
1.染色法 O(n+m)
2.匈牙利算法 O(mn)实际运行时间远小于O(mn)
朴素prim:
模板:
dist[i]<- +INF
for i 1~n
t<-找到集合外距离最近的点
用t更新其他点到集合的距离
st[t]=true;
Kruskal算法 (高度类似并查集)
1.将所有边按权重从小到大排序 O(mlogm)
2.枚举每条边a,b权重c
if ab不连通
将这条边也加入集合中
3.31日学习内容: 练习了最短路的代码
4.2学习内容:看完了搜索与图论(3)
染色法:
for i 1~n
if i未染色
dfs(i)
搜索与图论(3)的代码还没写,只看了直播
下一步的计划就是继续熟悉一下最短路问题 然后写搜索与图论三最后的内容
如果条件只能看直播写不了代码的话 就只能继续开下一章节的内容了 不过是先开数学还是开dp好呢?