设 n n n个点 m m m条边的无向带权连通图
kruskal
引理:所有边集中边权最小的边一定是最小生成树中的边
证明:对于任意一颗不含有最小边的最小生成树,把最小边加入生成树,会构成一个环,环上的边权值都比大于等于最小边,如果环上的最大值大于最小边,删掉最大边保留最小边可以让生成树权值减少,这与该生成树是最小生成树矛盾。因此得到环上边的权值都等于最小边,于是引理成立。
推论:每次拿出最小边 u , v u,v u,v,将 u , v u,v u,v合并成一个新的结点(加入 u , v u,v u,v后它们已经处于一个连通块),对应的边也合并,可以得到一个点数为 n − 1 n-1 n−1的新图,问题转换为求新图的最小生成树,对新图继续应用引理,最后缩成一个点,就得到了最小生成树。
prim
引理:以 u u u为顶点的所有边中的最小边是最小生成树中的边。
证明:假设以 u u u为顶点的最小边是 u , v u,v u,v,对于任意不含有 u , v u,v u,v的最小生成树。加入边 u , v u,v u,v,此时构成了一个环,并且环上两条以 u u u为顶点的边,一条是 u , v u,v u,v,另一条权值一定大于等于 u , v u,v u,v的权值,如果另外一条大于,与这是一颗最小生成树矛盾,因此另外一条边的权值等于 u , v u,v u,v的权值,删除另外一条边保留 u , v u,v u,v,则这仍然是一颗最小生成树,引理得证。
推论:与krusakl的证明一样,反复应用引理即可