NYOJ434_Jungle Roads(最小生成树)
来源:互联网 发布:韩顺平java新手 编辑:程序博客网 时间:2024/06/02 01:58
原题地址:点击打开链接
用并查集实现克鲁斯卡尔算法,求最小生成树
#include<stdio.h>#include<algorithm>using namespace std;struct Edge{int u;int v;int cost;}e[1000];int p[500];int comp(Edge e1,Edge e2){return e1.cost<e2.cost;}int find(int x){if(p[x]!=x){p[x]=find(p[x]);}return p[x];}bool bin(int x,int y){int g=find(x);int h=find(y);if(g!=h){p[g]=h;return true;}return false;}bool check(int n){int i,res=0;for(i=1;i<=n;i++){if(p[i]==i)res++;}if(res>1)return false;return true;}int main(){int n,i,m,j,u,v,cost,size,res;char ch[2];while(scanf("%d",&n)&&n!=0){res=0;size=0;for(i=1;i<=n;i++){p[i]=i;}for(i=1;i<n;i++){u=i;getchar();scanf("%s%d",&ch,&m);for(j=0;j<m;j++){getchar();scanf("%s%d",&ch,&cost);e[size].u=i;e[size].v=ch[0]-'A'+1;e[size++].cost=cost;}}sort(e,e+size,comp);for(i=0;i<size;i++){if(bin(e[i].u,e[i].v)){res+=e[i].cost;if(check(n))break;}}printf("%d\n",res);}return 0;}
1 0
- NYOJ434_Jungle Roads(最小生成树)
- Jungle Roads(最小生成树)
- HDU1102_Constructing Roads(最小生成树)
- POJ1251_Jungle Roads(最小生成树)
- POJ2421_Constructing Roads(最小生成树)
- 【最小生成树】Constructing Roads
- POJ1251Jungle Roads(最小生成树)
- Jungle Roads 最小生成树
- pku 3625 Building Roads(最小生成树)
- POJ 2421 Constructing Roads(最小生成树)
- ZOJ 1406 Jungle Roads (最小生成树)
- zoj 1406 Jungle Roads 最小生成树
- POJ2421 Constructing Roads [最小生成树 prim]
- HDOJ 1102 Constructing Roads(最小生成树)
- POJ 2421 Constructing Roads 最小生成树
- Constructing Roads(最小生成树)
- zoj1406----------Jungle Roads 最小生成树 prim
- POJ 1251 Jungle Roads 最小生成树
- Linux初学者五个网站推荐
- 透明像素-Premultiplied Alpha的秘密
- 加载properties文件 获取值
- java自定义泛型和反射泛型介绍
- HTML基本知识点——表单和表单元素标记
- NYOJ434_Jungle Roads(最小生成树)
- 模拟相机捕捉影像 将影像进行保存
- C++实现24点游戏
- C++的顶层const和底层const的理解
- Linux下find命令的解析
- vs和sqlserver连不上服务器的解决办法
- 4.11学习内容
- tensorflow 1.01中GAN(生成对抗网络)手写字体生成例子(MINST)的测试
- 悼念512汶川大地震遇难同胞——珍惜现在,感恩生活