zoukankan      html  css  js  c++  java
  • poj 3522(生成树)

    题意:求解一个图中生成树最大边与最小边的最小差值

    思路:循环去掉小边求残图的最小生成树,求得最小生成树的最长边与最短边的最小差值就是答案,容易证明与最小边差值最小的生成树最大边必然在最小生成树中。

    View Code
     1 #include<iostream>
     2 #include<stdio.h>
     3 #include<string.h>
     4 #include<algorithm>
     5 using namespace std;
     6 #define inf 0x3f3f3f3f
     7 #define N 110
     8 #define M N*N
     9 struct edge{
    10     int a,b,w;
    11 }e[M];
    12 int f[N];
    13 int comp(const void *a,const void *b)
    14 {
    15     return ((edge *)a)->w>((edge *)b)->w?1:-1;
    16 }
    17 int find(int x)
    18 {
    19     if(f[x]==x||f[x]==0)return x;
    20     f[x]=find(f[x]);
    21     return f[x];
    22 }
    23 int main()
    24 {
    25     int n,m;
    26     while(scanf("%d%d",&n,&m))
    27     {
    28         int min0=inf;
    29         if(n==0&&m==0)break;
    30         for(int i=0;i<m;i++)
    31         scanf("%d%d%d",&e[i].a,&e[i].b,&e[i].w);
    32         qsort(e,m,sizeof(edge),comp);
    33         for(int i=0;i<=m-n+1;i++)
    34         {
    35             int c=0;
    36             memset(f,0,sizeof(f));
    37             for(int j=i;j<m;j++)
    38             {
    39                 int a0=find(e[j].a);
    40                 int b0=find(e[j].b);
    41                 if(a0==b0)continue;
    42                 else {
    43                     f[a0]=b0;
    44                     c++;
    45                     if(c==n-1){min0=min(min0,e[j].w-e[i].w);break;}
    46                 }
    47             }
    48             if(c<n-1)break;
    49         }
    50         if(min0<inf)printf("%d\n",min0);
    51         else printf("-1\n");
    52     }
    53     return 0;
    54 }
    55 
    56 关闭提示 关闭
    57 确 认 取 消
  • 相关阅读:
    rest framework 认证 权限 频率
    rest framework 视图,路由
    rest framework 序列化
    10.3 Vue 路由系统
    10.4 Vue 父子传值
    10.2 Vue 环境安装
    10.1 ES6 的新增特性以及简单语法
    Django 跨域请求处理
    20190827 On Java8 第十四章 流式编程
    20190825 On Java8 第十三章 函数式编程
  • 原文地址:https://www.cnblogs.com/huangriq/p/2497657.html
Copyright © 2011-2022 走看看