【python算法】图论之Kruskal求最小生成树模板

【python算法】Kruskal算法求最小生成树模板

【模板】Floya

题目描述:

输入格式:

输出格式:

数据范围:

输入样例:

输出样例:

  参考题解 : 


【模板】Floya

859. Kruskal算法求最小生成树 - AcWing题库https://www.acwing.com/problem/content/description/861/

题目描述:

给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。

求最小生成树的树边权重之和,如果最小生成树不存在则输出impossible。

给定一张边带权的无向图=(V,E),其中V表示图中点的集合,E表示图中边的集合,n=|V\,m =|E。

由V中的全部n个顶点和E中n―1条边构成的无向连通子图被称为G的一棵生成树,其中边的权值之和最小的生成树被称为无向图的最小生成树。

输入格式:

第一行包含两个整数n和m。

接下来m行,每行包含三个整数u, v, ww,表示点u和点v之间存在一条权值为w的边。

输出格式:

共一行,若存在最小生成树,则输出一个整数,表示最小生成树的树边权重之和,如果最小生成树不存在则输出impossible 。

数据范围:

输入样例:

4 5

1 2 1

1 3 2

1 4 3

2 3 2 

3 4 4

输出样例:

6

  参考题解 : 

from collections import defaultdict, deque

def find(x):
    if not p[x] == x:
        p[x] = find(p[x])
    return p[x]
    
n, m = map(int, input().split())
p = [_ for _ in range(n + 1)]
g = []
for _ in range(m):
    g.append(tuple(map(int, input().split())))
g.sort(key=lambda x:x[2])

cnt = 0
res = 0
for u, v, w in g:
    eu = find(u)
    ev = find(v)
    if eu == ev: continue
    p[ev] = eu
    res += w
    cnt += 1

print('impossible') if not cnt == n - 1 else print(res)

番外:

课程简介:
本课程是AcWing系列课程Level-2。

本课程会系统讲解基础算法与数据结构的 原理,并给出相应 代码模板。
课后会布置相应打卡题目,加以巩固。
直播支持回放功能,供同学们课后复习使用。

整个课程已全部讲完,试听课在这里。
录像和打卡功能永久有效。

时间安排
视频总共45小时左右。

费用
费用总共200元。

拼团优惠

单独报名200元
三人拼团每人149元
拼团方式:点击右上角“报名”后,选择“拼团报名”,付款后邀请好友即可。每个团有效时间为24小时,超过时间后订单自动取消,已付金额会自动退回原账户。
学习奖励:

报名后在AcWing杯 - 周赛中取得前10%的成绩,返5AC币,以及一枚成就勋章。
仅限一次。
知识点
基础算法 —— 代码模板链接 常用代码模板1——基础算法

排序
二分
高精度
前缀和与差分
双指针算法
位运算
离散化
区间合并
数据结构 —— 代码模板链接 常用代码模板2——数据结构

链表与邻接表:树与图的存储
栈与队列:单调队列、单调栈
kmp
Trie
并查集

Hash表
搜索与图论 —— 代码模板链接 常用代码模板3——搜索与图论

DFS与BFS
树与图的遍历:拓扑排序
最短路
最小生成树
二分图:染色法、匈牙利算法
数学知识 —— 代码模板链接 常用代码模板4——数学知识

质数
约数
欧拉函数
快速幂
扩展欧几里得算法
中国剩余定理
高斯消元
组合计数
容斥原理
简单博弈论
动态规划

背包问题
线性DP
区间DP
计数类DP
数位统计DP
状态压缩DP
树形DP
记忆化搜索
贪心

时空复杂度分析
课程交流
遇到任何问题,可以加yxc的QQ:2925956006
另外可以加入AcWing算法交流群:696750166

作者:AcWing
链接:https://www.acwing.com/activity/content/11/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

完毕!

如果觉得有用,麻烦大家三连一下,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_51831335/article/details/121240899