zoukankan      html  css  js  c++  java
  • hdu3367并查集+Kruskal

    我靠,怎么过不了,不行  明天继续debug  明明过样例了  我的天。。。。

    次奥,打错了一个代码半天没找出来!!!哭啊。。

    这里记一下,kruskal是无环图。

    先贴挫代码:

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 10005
    using namespace std;
    int p[maxn],sum;
    int set[maxn];
    struct node{
        int c1;
        int c2;
        int len;
    }q[10*maxn];
    int cmp(node q1,node q2)
    {
        return q1.len>q2.len;
    }
    int find(int x)
    {
        if(x!=p[x])
          p[x]=find(p[x]);
         return p[x];
    }
    void unions(int x,int y)
    {
        p[x]=y;
    }
    int main()
    {
        //freopen("input.txt","r+",stdin);
        int i,n,m,fx,fy;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            if(n==0&&m==0)break;
            memset(set,0,sizeof(set));
            sum=0;
            for(i=1;i<=m;i++)
            {
                scanf("%d%d%d",&q[i].c1,&q[i].c2,&q[i].len);
            }
            for(i=0;i<n;i++)
                p[i]=i;
            sort(q+1,q+m+1,cmp);
            for(i=1;i<=m;i++)
            {
                fx=find(q[i].c1);
                fy=find(q[i].c2);
                if(fx==fy)
                {
                    if(!set[fx])
                    {
                        set[fx]=1;
                        sum+=q[i].len;
                    }
                    continue;
                }
                if(set[fx]&&set[fy])continue;
                if(set[fx]&&!set[fy])
                {
                    unions(fy,fx);
                }
                else
                {
                    unions(fx,fy);
                }
                sum+=q[i].len;
            }
            cout<<sum<<endl;
        }
        return 0;
    }
    


     

  • 相关阅读:
    Nacos安装部署文档
    mysql安装部署文档
    Postgresql数据库安装部署文档
    Sentinel安装部署文档
    Nginx安装部署手册
    golang 7. defer
    golang 6. 指针 *
    golang 5. import
    golang 4. 函数 func
    golang 3. 常量 const iota
  • 原文地址:https://www.cnblogs.com/amourjun/p/5134175.html
Copyright © 2011-2022 走看看