题目链接:http://poj.org/problem?id=3522思路:题目要求最小生成树中最大边与最小边的最小差值,由于数据不是很大,我们可以枚举最小生成树的最小边,然后kruskal求最小生成树,直到不能生成生成树为止,然后取最小的差值即可。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 #define MAXN 111
 7 #define inf 1<<30
 8
 9 struct Edge{
10     int u,v;
11     int len;
12 }edge[MAXN*MAXN];
13 int parent[MAXN];
14 int n,m;
15
16 void Initiate()
17 {
18     for(int i=1;i<=n;i++){
19         parent[i]=i;
20     }
21 }
22
23 int Find(int x)
24 {
25     if(x==parent[x]){
26         return parent[x];
27     }
28     parent[x]=Find(parent[x]);
29     return parent[x];
30 }
31
32 void Union(int u,int v)
33 {
34     int r1=Find(u),r2=Find(v);
35     if(r1==r2)return ;
36     parent[r1]=r2;
37 }
38
39 int cmp(const Edge &p,const Edge &q)
40 {
41     return p.len<q.len;
42 }
43
44 int Kruskal(int id)
45 {
46     int count=0,MIN=inf,MAX=-inf;
47     for(int i=0;i<m;i++){
48         if(edge[i].len<edge[id].len)continue;
49         int u=edge[i].u,v=edge[i].v;
50         if(Find(u)!=Find(v)){
51             MIN=min(MIN,edge[i].len);
52             MAX=max(MAX,edge[i].len);
53             count++;
54             Union(u,v);
55             if(count==n-1)return MAX-MIN;
56         }
57     }
58     return -1;
59 }
60
61
62
63 int main()
64 {
65     while(~scanf("%d%d",&n,&m)){
66         if(n==0&&m==0)break;
67         for(int i=0;i<m;i++){
68             scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].len);
69         }
70         sort(edge,edge+m,cmp);
71         int ans=inf;
72         for(int i=0;i<m;i++){
73             Initiate();
74             int tmp=Kruskal(i);
75             if(tmp==-1)break;
76             ans=min(ans,tmp);
77         }
78         if(ans!=inf){
79             printf("%d\n",ans);
80         }else
81             printf("-1\n");
82     }
83     return 0;
84 }

View Code

poj 3522(最小生成树应用)相关推荐

  1. POJ - 1251(最小生成树.krustal)

    题目链接:http://poj.org/problem?id=1251 题目: Jungle Roads Time Limit: 1000MS   Memory Limit: 10000K Total ...

  2. POJ - 2485(最小生成树.prime)

    题目链接: http://poj.org/problem?id=2485 题目: Highways Time Limit: 1000MS   Memory Limit: 65536K Total Su ...

  3. poj 3026 (最小生成树)

    题意:起点开始有超过100个人,总共不会超过100个外星人,问把所有的外星人都搜出来花的最小时间.一条路径上的时间跟人数是无关的,只跟路径长度有关. 思路:刚开始人都在起点,当派一定人数去最近的外星人 ...

  4. POJ 3522 Slim Span (Kruskal枚举最小边)

    题意: 求出最小生成树中最大边与最小边差距的最小值. 分析: 排序,枚举最小边, 用最小边构造最小生成树, 没法构造了就退出 1 #include <stdio.h> 2 #include ...

  5. Constructing Roads POJ - 2421 (最小生成树)

    思路:首先使用二维数组dis[][]处理输入, 对于已经修好的路,将其对应的dis[i][j]置为零即可.最后再将    所有的dis[][]保存到边结构体中,使用Kruskal算法求得最小生成树. ...

  6. Poj 3522 最长边与最短边差值最小的生成树

    题意:       让你求一颗生成树,使得最长边和最短边长度差值最小. 思路:      额!!!感觉这个思路会超时,但是ac了,暂时没什么别的好思路,那么就先说下这个思路,大牛要是有好的思路希望能在 ...

  7. poj 3522 Slim Span

    题意:给N个点,M条边,每个边有相应的权值,然后求出用M条边中的N-1条边形成的树中,边权值最大与最小的差为所有树中最小. 思路:想到了并查集,然后借用克鲁斯卡尔的思想,边排序,再枚举一下即可. 卡了 ...

  8. 2019.9.19最小生成树知识点总结

    ​​​​​HDU 1102 Constructing Roads(最小生成树-Prim) 最常见的,将已建成的路的权值设置为0,求最小生成树! HDU 1162 Eddy's picture(最小生成 ...

  9. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

最新文章

  1. 如何基于ERP的sales organization 创建CRM对应的数据
  2. java中线程死锁及避免_如何避免Java线程中的死锁?
  3. 熊猫数据集_熊猫迈向数据科学的第三部分
  4. python多任务笔记
  5. mysql创建表时表明加单引号_python在MySQL表名周围插入单引号(‘)
  6. discuz mysql配置文件_MySQL优化配置文件my.ini(discuz论坛)
  7. 中国成为「研究生大国」,99%研究生背后的焦虑:就业更难了!
  8. restController
  9. python调用QQ音乐API
  10. Unity官方文档解读之如何使用粒子系统创建汽车尾气
  11. 【Android机器学习实战】3、定制可点击View、目标检测、以图搜图实战
  12. Android基础第四篇
  13. 2008 NBA 全明星周未之扣篮大赛
  14. linux下主目录和根目录的区别
  15. html中tabindex属性是啥意思
  16. python神器排行_9款强大的Python工具包,第5款神器期待已久!
  17. CStdioFile扩展(支持Ansi、Unicode、Utf-8等文本格式)
  18. Android TV Metro界面
  19. Ubuntu 图片查看器 nomacs 安装
  20. php 如何用op浏览器开发手机网站,PHP实现手机网站支付(兼容微信浏览器)

热门文章

  1. 专业计算机能力考试 技巧,全国专业技术人员计算机应用能力考试应试技巧
  2. Angular之组件的创建
  3. 漫画|你还记得原生的JDBC怎么连接数据库吗?
  4. zabbix报警收到tcmime.1456.1456.1878.bin附件邮件
  5. [wxWidgets]_[0基础]_[不常见但有用的类wxStandardPaths]
  6. 优雅且高效的使用Chrome Developer Tools
  7. 提示 launch failed
  8. log4net(c#) 配置及使用
  9. CentOS下的freenx配置
  10. 青光眼-复内路粘小管成形术(ABiC)-转载