zoukankan      html  css  js  c++  java
  • kruscal

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=2e5+10;
    int fi[maxn],ne[maxn],v[maxn],w[maxn];
    struct re
    {
    	int x,y,z;
    };
    re a[maxn];
    int fa[maxn];
    int t=-1;
    
    bool cmp(re a,re b)
    {
    	return a.z<b.z;
    }
    int find(int k)
    {
    	if (k==fa[k]) return k;
    	else return fa[k]=find(fa[k]);
    }
    int main()
    {
    	int n,m;
    	cin>>n>>m;
    	for (int i=1;i<=n;i++) fa[i]=i;
    	for (int i=1;i<=m;i++)
    	{		
    		scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);
    	}
    	sort(a+1,a+1+m,cmp);	
    	int ans=0;
    	int mark=0;
    	for (int i=1;i<=m;i++)
    	{
    		if (find(a[i].x)==find(a[i].y)) continue;
    		ans+=a[i].z;
    		fa[find(a[i].x)]=find(a[i].y);
    		mark++;
    		if (mark==n-1) break;
    	}
    	if (mark!=n-1) cout<<"orz";else cout<<ans;	
    }
    
  • 相关阅读:
    500. 键盘行
    657. 判断路线成圈
    771. 宝石与石头
    461. 汉明距离
    Java 基本数据类型
    Windows下的DOM操作
    jQuery学习笔记
    Java(16-19)
    Java(1-15)
    总结
  • 原文地址:https://www.cnblogs.com/reshuffle/p/12344994.html
Copyright © 2011-2022 走看看