zoukankan      html  css  js  c++  java
  • 题目1017:还是畅通工程(最小生成树初步应用)

    题目链接:http://ac.jobdu.com/problem.php?pid=1017

    详解链接:https://github.com/zpfbuaa/JobduInCPlusPlus

    参考代码:

    //
    //  1017 还是畅通工程.cpp
    //  Jobdu
    //
    //  Created by PengFei_Zheng on 18/04/2017.
    //  Copyright © 2017 PengFei_Zheng. All rights reserved.
    //
     
    #include <stdio.h>
    #include <iostream>
    #include <algorithm>
    #include <string.h>
    #include <cmath>
    #define MAX_SIZE 110
     
    using namespace std;
     
    int tree[MAX_SIZE];
     
    int findRoot(int x){
        if(tree[x] == -1) return x;
        else{
            int tmp = findRoot(tree[x]);
            tree[x] = tmp;
            return tmp;
        }
    }
     
    struct Edge{
        int a, b;
        int cost;
        bool operator < (const Edge &A) const{
            return cost < A.cost;
        }
        Edge(){
            a = 0;
            b = 0;
            cost = 0;
        }
    };
     
    int n;
    int main(){
        while(scanf("%d",&n)!=EOF && n!=0){
            Edge edge[n*(n-1)/2+1];
            for(int i = 1 ; i <= n*(n-1)/2 ; i++){
                scanf("%d%d%d",&edge[i].a,&edge[i].b,&edge[i].cost);
            }
            sort(edge+1, edge+1+n*(n-1)/2);
            for(int i = 1 ; i <= n ; i++){
                tree[i] = -1;
            }
            int ans = 0;
            for(int i = 1 ; i <= n*(n-1)/2 ; i++){
                int a = findRoot(edge[i].a);
                int b = findRoot(edge[i].b);
                if(a!=b){
                    tree[a] = b;
                    ans+=edge[i].cost;
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    /**************************************************************
        Problem: 1017
        User: zpfbuaa
        Language: C++
        Result: Accepted
        Time:20 ms
        Memory:1520 kb
    ****************************************************************/
  • 相关阅读:
    jar命令
    python的实例方法,类方法和静态方法区别
    修饰器学习
    人生感悟的句子
    html+css学习
    url编码
    正向代理和反向代理
    web基础
    dns解析域名过程
    关于csrf
  • 原文地址:https://www.cnblogs.com/zpfbuaa/p/6731021.html
Copyright © 2011-2022 走看看