题目链接:点击链接
题意:求生成树,使得最大边与最小边差最小,输出最小值;
枚举边更新答案。

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <stack>
#include <queue>  using namespace std;const int MAXN = 110;//点
const int MAXM = 510;//边int f[MAXM];//并查集使用struct Edge
{int u, v, w;
}edge[MAXM];int tol;//边数 初始化 0void addedge(int u, int v, int w)
{edge[tol].u = u;edge[tol].v = v;edge[tol++].w = w;
}bool cmp(Edge a, Edge b)
{return a.w < b.w;
}int find(int x)
{if (f[x] == -1)return x;elsereturn f[x] = find(f[x]);
}int kruskal(int n)
{sort(edge, edge + tol, cmp);int cnt ;int ans = 1e9, ok = 0;int MAX;for (int j = 0; j < tol; j++){MAX = -1;memset(f, -1, sizeof(f));cnt = 0;for (int i = j; i < tol; i++){int u = edge[i].u;int v = edge[i].v;int w = edge[i].w;MAX = max(MAX, w);int t1 = find(u);int t2 = find(v);if (t1 != t2){f[t1] = t2;cnt++;}if (cnt == n - 1)break;}if (cnt == n - 1){ok = 1;ans = min(ans, MAX - edge[j].w);}}if (ok)return ans;elsereturn -1;
}int n, m;
int u, v, w;int main()
{while (scanf("%d%d", &n, &m) != EOF){if (n == 0 && m == 0)break;tol = 0;for (int i = 0; i < m; i++){scanf("%d%d%d", &u, &v, &w);addedge(u, v, w);}int ans = kruskal(n);printf("%d\n", ans);}return 0;
}

uva 1395 Silm Span 【MST-Kruskal】相关推荐

  1. 【Kruskal】Uva 1395 Slim Span

    这段时间要沉迷刷题一段时间了,就让CSDN陪我一起吧! 一.题目大意 题目的大致意思就是要你求一个图的生成树,要保证求解的这棵生成树的边的权值,最大值减去最小值最小,要求输出这个最小值. 二.题目思路 ...

  2. FZU 2087 统计树边【MST相关】

     Problem 2087 统计树边 Accept: 212    Submit: 651 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Prob ...

  3. 【MST+离线】ABC235 E - MST + 1

    一开始想的是分类讨论,看那条边加了之后成不成环,如果不成环且权值在前n-1,则一定在MST里,不在前n-1则不在MST里:如果成环了,如果权值不在前n-1,则不在MST里,如果权值在前n-1,则需要判 ...

  4. NYOJ 1239 引水工程 【MST 变形】

    引水工程 时间限制: 2000 ms  |  内存限制: 65535 KB 难度: 3 描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来投资额最大.涉及面最广的战略性 ...

  5. 【最小树形图(奇怪的kruskal)】【SCOI 2012】【bzoj 2753】滑雪与时间胶囊

    2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec Memory Limit: 128 MB Submit: 1621 Solved: 570 Description ...

  6. 最小生成树(普里姆算法【Prim】与克鲁斯卡尔算法【Kruskal】)

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  7. 【BZOJ 2753】 2753: [SCOI2012]滑雪与时间胶囊 (分层最小树形图,MST)

    2753: [SCOI2012]滑雪与时间胶囊 Time Limit: 50 Sec  Memory Limit: 128 MB Submit: 2457  Solved: 859 Descripti ...

  8. Slim Span UVA - 1395 (并查集)

    Slim Span UVA - 1395 题目大意: 给出m条边,问使n个节点连成一幅连通图的最大边减去最小边的最小值 思路: 对边按照边权排序,求出在边权从小到大的边序列中连续的可以使点连成图的边的 ...

  9. 1348:【例4-9】城市公交网建设问题——Kruskal算法

    [题目描述] 有一张城市地图,图中的顶点为城市,无向边代表两个城市间的连通关系,边上的权为在这两个城市之间修建高速公路的造价,研究后发现,这个地图有一个特点,即任一对城市都是连通的.现在的问题是,要修 ...

  10. 【Codeforces】1051F. The Shortest Statement【MST+LCA+最短路】

    F. The Shortest Statement [题目描述] 传送门 [题解] 题目也说了,重点是m-n<=20,我们就可以先跑最小生成树,最后剩下最多21条边,对着44个端点(包括起点和终 ...

最新文章

  1. 蓝桥杯-Anagrams问题(java)
  2. oracle ajax储存过程分页,创建 Oracle 分页存储过程
  3. vue3 数据双向绑定demo
  4. 12个关键词,告诉你到底什么是机器学习
  5. 第三十二期:你们都是怎么学Python的?
  6. 算法学习之剑指offer(六)
  7. 南京oracle soa,Oracle SOA平台之甲骨文SOA套件概述
  8. “git push”后返回“Error 403”解决方法
  9. 【亚洲微软研究院】带你8篇论文梳理BERT相关模型进展与反思
  10. linux crontab测试,crontab使用测试
  11. 迷你上标和下标复制大全(含0~9、字母、特殊字符)
  12. 叩丁狼培训实战教程之Java的动态代理
  13. 塞班系统更新服务器,塞班系统又更新了,又更新了,仿佛回到十年前!
  14. 南京周边城市两日游方案
  15. python数据分析流程
  16. Hole_making基于特征加工
  17. Jmeter之事务控制器
  18. tf.range详解
  19. 电巢:2022年半导体业国产替代现状(附产业图谱1000+企业名单)
  20. 当机器有了“视力”,它会抢人类的饭碗并取代人类吗?

热门文章

  1. 什么流读取MultipartFile_IO流 - ShelterY
  2. 手把手教你搭建高逼格监控平台,动起来吧
  3. AssertionError: 1 columns passed, passed data had 5 columns错误解决
  4. 大学生计算机水平怎么提高,大学生如何提高计算机能力
  5. CSV文件打开看到双引号
  6. 服务器CPU和普通CPU有什么区别?常用的服务器有六大区别
  7. 在哪里看服务器cpu占用率,top命令查看服务器cpu使用情况等
  8. 马哥教育42期第一周作业
  9. Tinkpad笔记本双击开发Q盘不再提示创建恢复介质的对话框了,而且进入磁盘后文件夹是空的!
  10. Python之win7环境下安装python3