zoukankan      html  css  js  c++  java
  • uva_1935_Slim Span

    题意:给出一个n<100的图,求苗条度最小的生成树,苗条度指生成树最长的边-最短的边

    分析:先按照边权进行排序,然后枚举生成树边开始的起点,用kruskal找到终点,每次更新答案

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=1e4+5;
     4 
     5 int u[maxn],v[maxn],w[maxn],r[maxn];
     6 int n,m,p[105];
     7 
     8 bool cmp(int a,int b){
     9     return w[a]<w[b];
    10 }
    11 
    12 void init(){
    13     for(int i=0;i<=n;i++)
    14         p[i]=i;
    15 }
    16 
    17 int find(int x){
    18     return p[x]==x?x:p[x]=find(p[x]);
    19 }
    20 
    21 int main(){
    22     while(~scanf("%d%d",&n,&m)&&n+m){
    23         for(int i=0;i<m;i++){
    24             scanf("%d%d%d",u+i,v+i,w+i);
    25             r[i]=i;
    26         }
    27         sort(r,r+m,cmp);
    28         int ans=maxn,d;
    29         for(int i=0;i<=m-n+1;i++){
    30             init();d=0;
    31             for(int j=i;j<m;j++){
    32                 int x=find(u[r[j]]);
    33                 int y=find(v[r[j]]);
    34                 if(x!=y){
    35                     d++;
    36                     p[x]=p[y];
    37                 }
    38                 if(d==n-1){
    39                     ans=min(ans,w[r[j]]-w[r[i]]);
    40                     break;
    41                 }
    42             }
    43             if(d<n-1)
    44                 break;
    45         }
    46         printf("%d
    ",ans==maxn?-1:ans);
    47     }
    48     return 0;
    49 }
    View Code
  • 相关阅读:
    3.springMVC参数绑定过程(页面向后台传参)
    2.springMVC入门程序
    1.理解springMVC的原理
    RTO
    DC Congestion Control
    docs for DC Network
    FCT和QCT
    下行TM
    上行TM
    调度与队列
  • 原文地址:https://www.cnblogs.com/jihe/p/5192009.html
Copyright © 2011-2022 走看看