最小生成树+并查集+ kruskal
来源:互联网 发布:迅捷网络的登录页面 编辑:程序博客网 时间:2024/05/16 00:49
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;const int maxn=10010;int f[maxn],rank[maxn];struct node{int x,y,w;}a[maxn];bool cmp(node x,node y){return x.w<y.w;}int fa(int x){if(f[x]!=x)x=fa(f[x]);return f[x];}//find his fatherint find(int x,int y){if(fa(x)==fa(y))return 0;return 1;}//do they have mutual father ?void link(int x,int y){if(rank[x]>=rank[y]){f[fa(y)]=fa(x); rank[fa(y)]++;}else{f[fa(x)]=fa(y); rank[fa(x)]++;}}// let's merge!int main(){int i,j,k,m,n;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)f[i]=i;//everyone is his own father; for(i=1;i<=m;i++)scanf("%d%d%d",&a[i].x,&a[i].y ,&a[i].w );sort(a+1,a+n+1,cmp);s=n-1;i=0;int ans=0;while(s && i<=m){ i++; if(find(a[i].x,a[i].y)){ link(a[i].x,a[i].y); s--; ans+=a[i].w; } } printf("罗旅洲 %d",ans);return 0;}mode by 罗旅洲
1 0
- 最小生成树+并查集+ kruskal
- POJ 2485 : 最小生成树(kruskal+并查集)
- POJ 1861 Networks 最小生成树 Kruskal+并查集
- POJ 2485 Highways Kruskal+并查集 最小生成树
- 最小生成树(kruskal+并查集实现)
- 最小生成树实现(kruskal+并查集)续
- 并查集与kruskal最小生成树
- poj1861最小生成树(并查集)-kruskal算法
- 最小生成树Kruskal算法+并查集实现
- 算法 最小生成树之 kruskal算法+并查集
- 图论-最小生成树-并查集-Kruskal
- ACM:最小生成树,kruskal && prim,并查集
- tyvj1307 kruskal+并查集 最小生成树
- 最小生成树kruskal算法(并查集)
- 并查集扩展之最小生成树Kruskal算法
- 最小生成树kruskal算法(并查集)
- 最小生成树Kruskal算法+并查集检查连通
- 最小生成树Kruskal算法+并查集实现
- read .txt file
- c语言内存分配与释放
- 指向指针的指针
- leetcode_414. Third Maximum Number 返回数组中第三大的数,要求用O(n)的时间复杂度
- 剑指Offer(面试题43~45)
- 最小生成树+并查集+ kruskal
- java的instanceof关键字
- 分享python视频教程
- js实现发送短信验证码后的倒计时功能(无视页面刷新)
- 新增用户函数
- 5W2H分析法
- css3左右箭头
- JavaScript中的json解析和序列化
- 【NOIP2011】洛谷1310 表达式的值