zoukankan      html  css  js  c++  java
  • poj AgriNet

    最小生成树,裸题

    #include"stdio.h"
    #include"stdlib.h"
    
    int r[105],n,p;
    
    
    struct nod
    {
        int x,y;
        int len;
    }w[10005];
    
    int cmp(const void *a,const void *b)
    {
        nod *aa=(nod*)a,*bb=(nod*)b;
        return aa->len-bb->len;
    }
    
    
    int find(int x)
    {
        while(x!=r[x])
            x=r[x];
        return x;
    }
    
    void input()
    {
        int i,j;
        p=0;
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            {
                scanf("%d",&w[p].len);
                w[p].x=i;w[p].y=j;
                p++;
            }
    }
    
    int cal()
    {
        int sum=0,i,a,b;
        for(i=0;i<=n;i++)
            r[i]=i;
        qsort(w,p,sizeof(nod),cmp);
        for(i=0;i<p;i++)
        {
            a=find(w[i].x);
            b=find(w[i].y);
            if(a!=b)
            {
                sum+=w[i].len;
                r[b]=a;
            }
        }
        return sum;
    }
    
    int main( )
    {
        while(~scanf("%d",&n))
        {
            input();
            printf("%d\n",cal());
        }
        return 0;
    }
  • 相关阅读:
    Spring MVC
    Spring
    MyBatis
    Java Listener
    Java Filter
    JSTL
    EL
    pyltp安装
    美团面经-java开发
    oppo面经-java开发
  • 原文地址:https://www.cnblogs.com/chaosheng/p/2611574.html
Copyright © 2011-2022 走看看