POJ 1789

来源:互联网 发布:域名转出收费吗 编辑:程序博客网 时间:2024/05/17 06:12

尚在调试中。。。。。

#include<cstdio>#include<iostream>#include<cstdlib>using namespace std;struct node{    int x,y,len;}e[1000];int f[100]={0},n,m,k,sum;int cmp(const void *x,const void *y){    return (*(struct node *)x).len-(*(struct node *)y).len;}int getf(int v){    if(f[v]==v)        return v;    else    {        f[v]=getf(f[v]);        return f[v];    }}void merge(int v,int u){    if( getf(f[v]) != getf(f[u]) )        f[f[u]]=f[v];}int query(int v,int u){    if(getf(v)==getf(u))        return 1;    else        return 0;}int main(){    int i,x,y;    while(scanf("%d",&n) && n)    {        for(i=1;i<=n;i++)        qsort(&e[1],m,sizeof(e[0]),cmp);        for(i=1;i <= n;i++)            f[i]=i;        i=1;k=0;sum=0;        while(k < n)        {            if( query(e[i].x,e[i].y)==0 )            {                k++;                sum += e[i].len;                merge(e[i].x,e[i].y);            }            i++;        }        printf("%d",sum);        return 0;    }}


原创粉丝点击