洛谷1111 修復公路

2022-05-12 13:24:00 字數 990 閱讀 8427

題目背景

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

#include

using

namespace

std;

const

int maxn=100005;

int fa[maxn],n,m,k;

bool flag;

struct edgeedge[maxn];

inline

int find(int x)

inline

int cmp(edge a,edge b)

}sort(1+edge,1+edge+m,cmp);

for(register

int i=1;i<=m;i++)

}

}if(flag==false) printf("-1");

return

0;}

洛谷 1111 修復公路

題目描述 給出a地區的村莊數n,和公路數m,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公路連成一條道路 輸入輸出格式 輸入格式 第111行兩個正整數n,m 下面...

洛谷p1111 修復公路

一開始村莊之間兩兩不連通,按時間從小到大修復公路,判斷兩個村莊是否聯通,若聯通了那就直接看下一條路,若不聯通那就修復。直到m條路都遍歷完。重點來了,最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公路連成一條道路 滿足條件最少需要幾條路?n個村莊就n 1條唄,輸出時判斷公路數有沒有至...

洛谷P1111 修復公路

做完題看了一下題解,發現大佬們用的都是什麼最小生成樹,蒟蒻瑟瑟發抖,其實這題用最簡單的並查集就可以通過 對於時間進行排序,從最早完成的時間開始,每次合併兩條邊,然後檢視他們是否屬於同一集合,如果是,輸出完成時間,直接結束程式 如果遍歷結束還沒用都處於同一聯通塊,那麼就輸出 1.不開o2記得卡常 附 ...