zoukankan      html  css  js  c++  java
  • hdu1233 还是畅通工程 最小生成树

    给出修建边的边权,求连通所有点的最小花费

    最小生成树裸题

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<algorithm>
     4 using namespace std;
     5 
     6 struct seg{
     7     int a,b,l;
     8     bool operator <(const seg a)const{
     9         return l<a.l;
    10     }
    11 }s[5000];
    12 
    13 int n,fa[105];
    14 
    15 void init(){
    16     for(int i=1;i<=n;i++)fa[i]=i;
    17 }
    18 
    19 int find(int x){
    20     return x==fa[x]?x:fa[x]=find(fa[x]);
    21 }
    22 
    23 int main(){
    24     while(scanf("%d",&n)!=EOF&&n!=0){
    25         int c=n*(n-1)/2;
    26         int i;
    27         for(i=1;i<=c;i++){
    28             scanf("%d%d%d",&s[i].a,&s[i].b,&s[i].l);
    29         }
    30         sort(s+1,s+c+1);
    31         init();
    32         int t=0,ans=0;
    33         for(i=1;i<=c;i++){
    34             int x=find(s[i].a),y=find(s[i].b);
    35             if(x!=y){
    36                 ans+=s[i].l;
    37                 t++;
    38                 fa[x]=y;
    39                 if(t==n-1)break;
    40             }
    41         }
    42         printf("%d
    ",ans);
    43     }
    44     return 0;
    45 }
    View Code
  • 相关阅读:
    DOM节点类型
    javascript中的变量、作用域
    this 不同情况指代的对象
    BOM对象节点
    浏览器兼容性
    总结
    javascript事件流讲解和实例应用
    7.20
    7.16总结
    飞机大战
  • 原文地址:https://www.cnblogs.com/cenariusxz/p/6578354.html
Copyright © 2011-2022 走看看