今天是集训第二部分的第二天,继续搞图论,树理解多少写多少==然后一直补充吧==原谅我毕竟我是个菜鸡
一.树
二.无向图的最小生成树
最小生成树实现有两种算法:Prim算法和Kruskal算法
个人感觉,Prim算法难理解但是好实现,Kruskal算法利用贪心的思想很容易理解但是写代码的时候需要用到并查集.看个人还有结合具体题目进行选择
1.Prim算法
简单一点来说算法步骤就是
a.在一个图中,我们先任意选择一点作为起始点
b.通过这个点,找到与她相邻的边,选择一条最小的边进行相连,将两点相连
c.再次以两点为基础,找到他俩距离最短的边,再将这个点相连
d.重复此步骤,直到所有的点都连在了一起,将所有的权值相加则为最小生成树
2.Kruskal算法
这个算法则是利用了贪心的思想
我们现将所有的权值按从小到大排序
然后我们从小的边开始遍历,如果将这条边加入进去,不会连成一个环,则就能生成树
然后 一个一个来直到所有的点都连起来还不成一个环,就能得到最小生成树