[bzoj1083]繁忙的都市
很明显,跑一边最小生成树然后记录一下最小瓶颈就是答案了。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 }