[bzoj1083]繁忙的都市

很明显,跑一边最小生成树然后记录一下最小瓶颈就是答案了。

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #include <cmath>
 5 #include <algorithm>
 6 using namespace std;
 7 
 8 const int N=10010;
 9 struct E{
10     int u,v,c;
11     bool operator <(E b)const{
12         return c<b.c;
13     }
14 }e[N];
15 
16 int n,m,ans,fa[N];
17 int f(int x){return x==fa[x]?x:fa[x]=f(fa[x]);}
18 int main(){
19     scanf("%d%d",&n,&m);
20     for(int i=1;i<=m;i++)scanf("%d%d%d",&e[i].u,&e[i].v,&e[i].c);
21     for(int i=1;i<=n;i++)fa[i]=i;
22     sort(e+1,e+1+m);
23     for(int i=1;i<=m;i++){
24         if(f(e[i].u)!=f(e[i].v)){
25             fa[f(e[i].u)]=f(e[i].v);
26             ans=e[i].c;
27         }
28     }
29     printf("%d %d\n",n-1,ans);
30 }
View Code

 

posted @ 2017-01-31 09:59  KingSann  阅读(113)  评论(0编辑  收藏  举报