zoukankan      html  css  js  c++  java
  • 【Luogu1111】修复公路(MST模板)

    problem

    • n个村庄,m条公路,建设每条公路需要时间t
    • 求多少时间后任意村庄通车

    solution

    • 最小生成树模板
    • 注意特判,无法连通输出-1

    codes

    #include<iostream>
    #include<algorithm>
    using namespace std;
    struct side{ int u, v, w; }e[101000];
    bool cmp(side a, side b){ return a.w<b.w; }
    int fa[100010];
    int find(int x){ return x==fa[x] ? x : fa[x]=find(fa[x]) ; }
    int main(){
        int n, m;
        cin>>n>>m;
        for(int i = 0; i < m; i++)cin>>e[i].u>>e[i].v>>e[i].w;
        sort(e, e+m, cmp);
        for(int i = 1; i <= n; i++)fa[i] = i;  int cc = n-1, ans = 0;
        for(int i = 0; i < m; i++){
            if(find(e[i].u) != find(e[i].v)){
                fa[find(e[i].u)] = find(e[i].v);
                cc--;  ans = max(ans, e[i].w);
            }
            if(!cc)break;
        }
        if(!cc)cout<<ans;
        else cout<<"-1";
        return 0;
    }
  • 相关阅读:
    反序列化
    反序列化使用
    Serializer序列器
    DRF工程搭建
    JDK目录介绍
    Java环境变量配置
    Java语言的特性
    Java语言概述
    计算机编程语言介绍
    软件开发介绍
  • 原文地址:https://www.cnblogs.com/gwj1314/p/9444779.html
Copyright © 2011-2022 走看看