P1111 修復公路

2022-05-18 05:53:34 字數 1686 閱讀 9186

aa地區在**過後,連線所有村莊的公路都造成了損壞而無法通車。**派人修復這些公路。

給出a地區的村莊數nn,和公路數mm,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路(可以由多條公路連成一條道路)

第11行兩個正整數n,mn,m

下面mm行,每行33個正整數x, y, tx,y,t,告訴你這條公路連著x,yx,y兩個村莊,在時間t時能修復完成這條公路。

如果全部公路修復完畢仍然存在兩個村莊無法通車,則輸出-1−1,否則輸出最早什麼時候任意兩個村莊能夠通車。

輸入 #1複製

4 4

1 2 6

1 3 4

1 4 5

4 2 3

輸出 #1複製

5
code

1 #include 2

#define dbg(x) cout << #x << "=" << x << endl

3#define eps 1e-8

4#define pi acos(-1.0)56

using

namespace

std;

7 typedef long

long

ll;8

9 templateinline void read(t &res)

1015

16namespace

_buff

24return ib == ie ? -1 : *ib++;25}

26}2728

intqread()

36if (c == '-'

) 40

for (; c >= '

0' && c <= '

9'; c =getc())

43return pos ? ret : -ret;44}

4546

const

int maxn = 1e3 + 7;47

48int

fa[maxn];

49int

n,m;

5051

struct

node a[100007

];54

55bool

cmp(node a, node b)

5859

int fid(int

x) 62

63void join(int x, int

y) 69}70

71int

main()

7279 sort(a + 1, a + m + 1

, cmp);

80for ( int i = 1; i <= n; ++i )

83int id = 1;84

for ( int i = 0; i <= maxx; ++i )

91else

92break;93

}94int cnt = 0;95

for ( int j = 1; j <= n; ++j )

101if(cnt == 1

) 105

}106 cout << -1

<

107return0;

108 }

view code

P1111 修復公路

a地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數n,和公路數m,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公路連成...

P1111 修復公路

a 地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數 n 和公路數 m 公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公...

P1111 修復公路

題目提供者該使用者不存在 標籤並查集 難度普及 提高 提交該題 討論 題解記錄 a地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數n,和公路數m,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠...