zoukankan      html  css  js  c++  java
  • 洛谷P1111 修复公路

    题目背景

    A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车。政府派人修复这些公路。

    题目描述

    给出A地区的村庄数N,和公路数M,公路是双向的。并告诉你每条公路的连着哪两个村庄,并告诉你什么时候能修完这条公路。问最早什么时候任意两个村庄能够通车,即最早什么时候任意两条村庄都存在至少一条修复完成的道路(可以由多条公路连成一条道路)

    输入输出格式

    输入格式:

    第1行两个正整数N,M

    下面M行,每行3个正整数x, y, t,告诉你这条公路连着x,y两个村庄,在时间t时能修复完成这条公路。

    输出格式:

    如果全部公路修复完毕仍然存在两个村庄无法通车,则输出-1,否则输出最早什么时候任意两个村庄能够通车。

    输入输出样例

    输入样例#1:
    4 4
    1 2 6
    1 3 4
    1 4 5
    4 2 3
    输出样例#1:
    5

    说明

    N<=1000,M<=100000

    x<=N,y<=N,t<=100000

    并查集 (看好M的范围、、)点击传送

    #include <algorithm>
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    bool vis[20001];
    struct node {
        int u,v,w;
    }e[100001];
    int maxn,i,j,m,n,fa[100001],tot;
    bool cmp(node a,node b)
    {
        return a.w<b.w;
    }
    int find(int k)
    {
        if(fa[k]==k) return k;
        else return find(fa[k]);
    }
    int main()
    {
        cin>>n>>m;
        int x,y,z;
        for(i=0;i<m;++i)
        {
            cin>>x>>y>>z;
            tot++;
            e[tot].u=x;
            e[tot].v=y;
            e[tot].w=z;
        }
        for(i=1;i<=n;++i) fa[i]=i;
        sort(e+1,e+tot+1,cmp);
        int t=0;
        for(i=1;i<=tot;++i)
        {
            int fx=find(e[i].u),fy=find(e[i].v);
            if(fx!=fy)
            {    
                maxn=max(maxn,e[i].w);
                for(j=1;j<=n;++j)
                    if(fa[j]==fy) 
                    {
                        fa[j]=fx;
                    }
                t++;
            }
            if(t==n-1) break;
        }
        if(!(t==n-1)) cout<<"-1";
        else cout<<maxn;
    }
    我们都在命运之湖上荡舟划桨,波浪起伏着而我们无法逃脱孤航。但是假使我们迷失了方向,波浪将指引我们穿越另一天的曙光。
  • 相关阅读:
    C语言文法修改
    C语言文法
    词法分析程序实验报告
    php设置http响应头和数据库查询字符集编码
    提交form前先使用JS进行验证
    iOS 移动端清除按钮的默认样式
    innerText与textContent的异同
    JS事件应用
    docker redis安装
    cmder的快捷键
  • 原文地址:https://www.cnblogs.com/ruojisun/p/6260317.html
Copyright © 2011-2022 走看看