zoukankan      html  css  js  c++  java
  • 1024.畅通工程

    题目描述:

    省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可)。经过调查评估,得到的统计表中列出了有可能建设公路的若干条道路的成本。现请你编写程序,计算出全省畅通需要的最低成本。

    输入:

    测试输入包含若干测试用例。每个测试用例的第1行给出评估的道路条数 N、村庄数目M (N, M < =100 );随后的 N 行对应村庄间道路的成本,每行给出一对正整数,分别是两个村庄的编号,以及此两村庄间道路的成本(也是正整数)。为简单起见,村庄从1到M编号。当N为0时,全部输入结束,相应的结果不要输出。

    输出:

    对每个测试用例,在1行里输出全省畅通需要的最低成本。若统计数据不足以保证畅通,则输出“?”。

    样例输入:

    3 3
    1 2 1
    1 3 2
    2 3 4
    1 3
    2 3 2
    0 100
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    样例输出:

    3
    ?
    #include<stdio.h>
    #include<algorithm>
    #include<iostream> 
    using namespace std;
    
    #define N 101
    
    int tree[N];
    int findroot(int x){
        if(tree[x]==-1) return x;
        else {
            int temp=findroot(tree[x]);
            tree[x]=temp;
            return temp;
        }
    }
    
    struct edge{
        int a,b;
        int cost;
        bool operator < (const edge &A) const {
             return cost<A.cost;
        }
    }edge[10000];
    
    int main(){
        int n,m;
        while(scanf("%d%d",&n,&m)!=EOF && n!=0){
            for(int i=1;i<=n;i++){
                scanf("%d%d%d",&edge[i].a,&edge[i].b,&edge[i].cost);
            }
            sort(edge+1,edge+1+n);
            for(int i=1;i<=m;i++) tree[i]=-1;
            int ans=0;
            for(int i=1;i<=n;i++){
                int a=findroot(edge[i].a);
                int b=findroot(edge[i].b);
                if(a!=b){
                    tree[a]=b;
                    ans+=edge[i].cost;
                }
            }
            int num=0;
            for(int i=1;i<=m;i++){
                if(tree[i]==-1) num++;
            }
            if(num>1) cout<<"?"<<endl;
            else cout<<ans<<endl;
        }
        return 0;
    }
  • 相关阅读:
    IdentityServer4身份认证授权入门-----客户端凭据、密码模式
    Linux从创建到部署ASP.NET Core项目-----使用阿里云(Centos7)
    Docker入门之快速安装和卸载使用Centos7
    SQLServer系列(二):系统函数之聚合函数
    SpringCloud-day09-Feign与Hystrix整合
    SpringCloud-day08-Hystrix断路器
    SpringCloud-day07-Feign
    SpringCloud-day06-Ribbon负载均衡
    SpringCloud-day05-服务调用Ribbon
    SpringCloud-day04-Eureka高可用集群配置
  • 原文地址:https://www.cnblogs.com/bernieloveslife/p/9736555.html
Copyright © 2011-2022 走看看