嗯,kruscal多的就不讲了
来源:互联网 发布:dnf一进去网络连接中断 编辑:程序博客网 时间:2024/05/17 02:25
#include<iostream>#include<algorithm>#include<cstdio>using namespace std;const int maxn=10000;#define inf 999999999;int p[maxn][maxn],e[maxn][maxn],dis[maxn],f[maxn];struct T{ int l, r, w;}a[maxn];int fa(int x){ if(x==f[x])return x; else{ f[x]=fa(f[x]);return f[x]; }}int cmp(T u,T v){ return u.w<v.w;}int merge(int u,int v){ int f1=fa(u); int f2=fa(v); if(f1!=f2){ f[f1]=v; return 1; } return 0;}int main(){ int i,j,k,m,n,sum=0,ans=0; scanf("%d%d",&n,&m); for(i=1;i<=n;i++)dis[i]=inf; for(i=1;i<=n;i++)f[i]=i; for(i=1;i<=n;i++) for(j=1;j<=n;j++){ e[i][i]=0; e[i][j]=inf;} for(i=1;i<=m;i++){ int x,y,z; scanf("%d%d%d",&x,&y,&z); a[i].l=x;a[i].r=y;a[i].w=z; } sort(a+1,a+m+1,cmp); /*printf("\n"); for(i=1;i<=m;i++){ printf("%d %d %d\n",a[i].l,a[i].r,a[i].w); }*/ for(i=1;i<=m;i++){ if(merge(a[i].l,a[i].r)){ sum++; ans+=a[i].w; } if(sum==n-1){break;} } printf("%d",ans); return 0;}
0 0
- 嗯,kruscal多的就不讲了
- kruscal
- kruscal
- kruscal
- Kruscal
- hdu1879 悲剧的kruscal版本
- Kruscal算法的C++实现
- Kruscal算法的简单介绍
- 使用并查集的Kruscal方法
- 并查集+Kruscal最小生成树; 温习了一下并查集, 同时又对静态数组的动态使用体会了一下;.
- 最小生成树的prim算法和kruscal算法
- KRUSCAL算法求图的最小生成树(C实现)
- 第十三周项目2--Kruscal算法的验证
- 第十三周项目2--Kruscal算法的验证
- 第十三周项目2--Kruscal算法的验证
- poj2560 kruscal
- hdu4263 Kruscal
- 【Kruscal】城市建设
- hdu 5443
- leetcode 389. Find the Difference 解题报告
- vim 编辑器的使用方法
- 防火墙不能防范的缺陷
- Gear VR 入门教程之二 获取用户输入
- 嗯,kruscal多的就不讲了
- Java面试题集锦
- Caffe安装:Ubuntu14.04+caffe+cuda7.0+cudnnv3.0
- 高级软件工程师之路-磁盘
- ROS安装
- sql语言及sql分类
- 关于网络安全那些大事
- 网络吞吐量(network)
- GetMemory函数的经典错误