zoukankan      html  css  js  c++  java
  • bzoj 3390: [Usaco2004 Dec]Bad Cowtractors牛的报复【最大生成树】

    裸的最大生成树,注意判不连通情况

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int N=20005;
    int n,m,f[N],con;
    long long ans;
    struct qwe
    {
    	int u,v,w;
    }a[N];
    bool cmp(const qwe &a,const qwe &b)
    {
    	return a.w>b.w;
    }
    int read()
    {
    	int r=0,f=1;
    	char p=getchar();
    	while(p>'9'||p<'0')
    	{
    		if(p=='-')
    			f=-1;
    		p=getchar();
    	}
    	while(p>='0'&&p<='9')
    	{
    		r=r*10+p-48;
    		p=getchar();
    	}
    	return r*f;
    }
    int zhao(int x)
    {
    	return x==f[x]?x:f[x]=zhao(f[x]);
    }
    int main()
    {
    	n=read(),m=read();
    	for(int i=1;i<=m;i++)
    		a[i].u=read(),a[i].v=read(),a[i].w=read();
    	sort(a+1,a+1+m,cmp);
    	for(int i=1;i<=n;i++)
    		f[i]=i;
    	for(int i=1;i<=m&&con<n-1;i++)
    	{
    		int fu=zhao(a[i].u),fv=zhao(a[i].v);
    		if(fu!=fv)
    		{
    			con++,ans+=a[i].w;
    			f[fu]=fv;
    		}
    	}
    	printf("%lld
    ",con==n-1?ans:-1ll);
    	return 0;
    }
    
  • 相关阅读:
    归并排序
    数据组合求值
    轨道周期
    类及对象构建
    日期改写
    排列组合去重
    库存更新
    Java性能测试从入门到放弃-详解篇
    Java性能测试从入门到放弃-概述篇
    cocos2d-x安装教程
  • 原文地址:https://www.cnblogs.com/lokiii/p/9191575.html
Copyright © 2011-2022 走看看