首页 > 其他 > 详细

P1111 修复公路

时间:2019-10-09 14:56:10      阅读:106      评论:0      收藏:0      [点我收藏+]
技术分享图片
 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 
 5 int fa[1010];
 6 int n, m;
 7 
 8 int find(int x)
 9 {
10     if (fa[x] == x) return x;
11     fa[x] = find(fa[x]);
12     return fa[x];
13 }
14 
15 void merge(int a,int b)
16 {
17     fa[find(a)] = find(b);
18 }
19 
20 struct Edge
21 {
22     int u, v, t;
23 }e[100010];
24 
25 bool cmp(Edge a, Edge b)
26 {
27     return a.t < b.t;
28 }
29 
30 int main()
31 {
32     cin >> n >> m;
33     for (int i = 1; i <= m; i++)
34     {
35         cin >> e[i].u >> e[i].v >> e[i].t;
36     }
37     sort(e + 1, e + m + 1, cmp);
38     int cnt = 1;
39     int t = -1;
40     for (int i = 1; i <= n; i++)
41     {
42         fa[i] = i;
43     }
44     for (int i = 1; i <= m; i++)
45     {
46         if (find(e[i].u) != find(e[i].v))
47         {
48             merge(e[i].u, e[i].v);
49             cnt++;
50             if (cnt == n)
51             {
52                 t = e[i].t;
53                 break;
54             }
55         }
56     }
57     if (cnt == n) cout << t;
58     else cout << -1;
59 }
View Code

 

P1111 修复公路

原文:https://www.cnblogs.com/thjkhdf12/p/11641328.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!