栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

zoj 1372 Networking

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

zoj 1372 Networking

#include<stdio.h>#include<stdlib.h>typedef struct{    int x,y;    int w;}NODE; NODE node[3000];int pre[55];void  change(int *x,int *y){      int t;     t=*x;     *x=*y;     *y=t;  }  int find(int x){    while(x!=pre[x])      x=pre[x];    return x;}  int kruskal(int k){    int i,j,a,b,h,sum=0;    for(i=0;i<k-1;i++)         {  h=i;  for(j=i+1;j<k;j++)     if(node[h].w>node[j].w)h=j;          if(h!=i)  {       change(&node[i].x,&node[h].x);      change(&node[i].y,&node[h].y);       change(&node[i].w,&node[h].w);   }          }for(i=0;i<k;i++){        a=find(node[i].x);        b=find(node[i].y);        if(a!=b)        { sum+=node[i].w; pre[b]=a;        }    }    return sum;}int main(){     int p,r,i,j;      while(scanf("%d",&p)&&p)    {        scanf("%d",&r);        for(i=0;i<=p;i++)          pre[i]=i;        for(i=0;i<r;i++) scanf("%d%d%d",&node[i].x,&node[i].y,&node[i].w);       printf("%dn",kruskal(r));    }     return 0;  }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/370440.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号