zoukankan      html  css  js  c++  java
  • poj3723 MST好题 kruskal

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<algorithm>
    using namespace std;
    #define inf 10000000
    #define MAXN 20000
    
    struct Edge{
    	int x,y,len;
    }e[3*MAXN];
    int n,m,r,ans;
    int fa[MAXN];
    int find(int x)
    {
    	if(x != fa[x])
    		fa[x] = find(fa[x]);
    	return fa[x];
    }
    bool cmp(Edge x,Edge y)
    {
    	return x.len>y.len;
    }
    void kruskal()
    {
    	for(int i=0;i<=n+m;i++)
    		fa[i]=i;
    	ans=0;
    	sort(e,e+r,cmp);
    	int f1,f2;
    	for(int i=0;i<r;i++)
    	{
    		f1=find(e[i].x);
    		f2=find(e[i].y+n);
    		//cout<<e[i].x<<' '<<f1<<endl;
    		if(f1!=f2)
    		{
    			fa[f1]=f2;
    			ans+=e[i].len;
    
    		}
    	}
    }
    int main()
    {
    	int T;
    	scanf("%d",&T);
    	while(T--)
    	{
    
    		scanf("%d%d%d",&n,&m,&r);
    		for(int i=0;i<r;i++)
    		{
    			scanf("%d%d%d",&e[i].x,&e[i].y,&e[i].len);
    		}
    		kruskal();
    		printf("%d
    ",10000*(n+m)-ans);
    	}
    }

    冒个泡表示还活着。。。

    这题需要转换下思维,就成最大生成树问题了。


  • 相关阅读:
    nginx 按天生成日志
    cmder
    EXCEL最大行数问题:org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1700)
    nginx configure 错误记录
    Flume NetCat Demo
    Flume
    hbase
    kafka安装配置
    azkaban
    sqoop
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134097.html
Copyright © 2011-2022 走看看