在说学到的这个知识点时,首先要感谢教练能抽空陪我们完成为期三天的集训,其次要感谢学长学姐们用他们不多的休闲时间给我们精心准备ppt,并耐心给我们讲解。学长学姐、老师无私付出,我们这些学弟学妹、学生们自然也拼命的学,可能期间有苦有“泪”,但也有收获后的喜悦…
记得昝卫博学长先给我们引入“连通图”和“树”这些概念,为了便于我们更好的接受#最小生成树#。在初接受这些概念时感觉挺恍惚的,后来嘛,骄傲了(因为听懂了哈哈),但后边关于树的先序、中序、后序还原树的代码问题时,?懵,对就是懵,这当头一棒…不过说实话,如果时手写结果我知道,但代码就算了吧?伤心。
后来嘛,也就是集训第二天下午,鲍承凤学姐(那个随性、洒脱的假男孩?)给我们讲了最小生成树的问题。基于上午昝学长引入的树的概念及延伸,这次的思路明显清晰了不少。
那么首先我学了一些最小生成树的概念,准则呢有三条:
(1) 必须只使用该图中的边来构造最小生成树;
(2) 必须使用且仅使用(n-1)条边来连接图中的n个顶点;
(3) 不能使用产生回路的边.
之后亲切的学姐,打算手一挥让我们出了一道题
于是乎,大家你言我语得把最短的距离一个个找出来,村庄之间一条条路真正连接。
终于一个最小生成树就这样被我们搞了出来,嘻嘻?GOOD!
之后我们如期的见到了代码?(命苦啊)。其实关于最小生成树有两种算法,一种由点主导适合于稠密图,一种由边主导合于稀疏图,也就是Prime算法和Kruskal算法。不过对于本人呢,我习惯于由点破面?,所以我做题都用Prime算法,虽然它的复杂度更高,但这也无法阻止我对它的爱❤。
下面呢Prime算法核心代码附上(嘻嘻):
集训很开心,收获也颇多,而晚上敲代码喽。也如老师说的:“只有巩固,夯实地基,才能接收更多,而成为摩天高楼耸于人际。”