• 洛谷1111修复公路


    题目背景

    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

    说明

    N1000,M100000

    xN,yN,t100000

    ****并查集,s记录连接的边数

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<cmath>
     5 using namespace std;
     6 int i,j,n,m,fa[1005],s = 0,ans = 0,u,v;
     7 struct node
     8 {
     9     int x;
    10     int y;
    11     int t;
    12 }a[100005];
    13 int cmp(node a,node b)
    14 {
    15     return a.t < b.t;
    16 }
    17 int find(int x)
    18 {
    19     if(fa[x] != x)
    20     {
    21         x = find(fa[x]);
    22     }
    23     return x;
    24 }
    25 int main()
    26 {
    27     scanf("%d %d",&n,&m);
    28     for(i = 1;i <= n;i++)
    29     {
    30         fa[i] = i;
    31     }
    32     for(i = 1;i <= m;i++)
    33     {
    34         scanf("%d %d %d",&a[i].x,&a[i].y,&a[i].t);
    35     } 
    36      sort(a + 1,a + 1 + m,cmp);
    37      for(i = 1;i <= m;i++)
    38      {
    39          u = find(a[i].x);
    40          v = find(a[i].y);
    41          if(u != v)
    42          {
    43              s++;
    44              fa[u] = v;
    45              ans = max(ans,a[i].t);
    46          }
    47      }
    48      if(s < n - 1)
    49      printf("-1");
    50      else
    51      printf("%d",ans);
    52      return 0;
    53 }
  • 相关阅读:
    IFS二次开发03——Item
    TFS二次开发01——TeamProjectsPicher
    我的八年程序之路(二)三月方便面换来800月薪
    我的八年程序之路(一)求职的艰辛
    重温CSS之背景、文本样式
    重温CSS之文档结构
    重温CSS之基础
    不使用第三方软件、使用IE11自带功能来屏蔽浏览器广告
    Windwos8.1下配置PHP环境
    Python学习系列之(二)图解Windows8.1下安装Django
  • 原文地址:https://www.cnblogs.com/rax-/p/9934405.html
Copyright © 2020-2023  润新知