1. // UVa1395 Slim Span
  2. // Rujia Liu
  3. #include<cstdio>
  4. #include<cmath>
  5. #include<cstring>
  6. #include<vector>
  7. #include<algorithm>
  8. using namespace std;
  9.  
  10. + ;
  11. ;
  12. int n;
  13.  
  14. int pa[maxn];
  15. int findset(int x) { return pa[x] != x ? pa[x] = findset(pa[x]) : x; }
  16.  
  17. struct Edge {
  18. int u, v, d;
  19. Edge(int u, int v, int d):u(u),v(v),d(d) {}
  20. bool operator < (const Edge& rhs) const {
  21. return d < rhs.d;
  22. }
  23. };
  24.  
  25. vector<Edge> e;
  26.  
  27. int solve() {
  28. int m = e.size();
  29. sort(e.begin(), e.end());
  30. int ans = INF;
  31. ; L < m; L++) { //枚举从第L条边开始kruskal
  32. ; i <= n; i++) pa[i] = i;
  33. int cnt = n; // number of sets
  34. for(int R = L; R < m; R++) { //枚举终点,遇到终止条件break
  35. int u = findset(e[R].u), v = findset(e[R].v);
  36. if(u != v) {
  37. pa[u] = v;
  38. ) { ans = min(ans, e[R].d-e[L].d); break; } //计算“苗条度”
  39. }
  40. }
  41. }
  42. ;
  43. return ans;
  44. }
  45.  
  46. int main() {
  47. int m, u, v, d;
  48. && n) {
  49. e.clear();
  50. ; i < m; i++) {
  51. scanf("%d%d%d", &u, &v, &d);
  52. e.push_back(Edge(u, v, d));
  53. }
  54. printf("%d\n", solve());
  55. }
  56. ;
  57. }

UVA1395的更多相关文章

  1. UVA1395 (最苗条的最小生成树)

    链接 https://vjudge.net/problem/UVA-1395 代码 #include<bits/stdc++.h> using namespace std; #define ...

  2. UVA1395 Slim Span(枚举最小生成树)

    题意: 求最小生成树中,最大的边减去最小的边 最小值. 看了题解发现真简单=_= 将每条边进行从小到大排序,然后从最小到大一次枚举最小生成树,当构成生成树的时候,更新最小值 #include < ...

  3. [生成树][Uva1395][Slim Span]

    代码: #include <set> #include <queue> #include <cmath> #include <cstdio> #incl ...

  4. uva1395 枚举不同区间的最小生成树

    枚举起点,求最小生成树.如果当前不能实现n个点连通,直接不再枚举. AC代码: #include<cstdio> #include<algorithm> using names ...

  5. Uva1395 POJ3522 Slim Span (最小生成树)

    Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...

  6. uva1395 - Slim Span(最小生成树)

    先判断是不是连通图,不是就输出-1. 否则,把边排序,从最小的边开始枚举最小生成树里的最短边,对每个最短边用Kruskal算法找出最大边. 或者也可以不先判断连通图,而是在枚举之后如果ans还是INF ...

  7. UVA1395 Slim Span(kruskal)

    题目:Slim Span UVA 1395 题意:给出一副无向有权图,求生成树中最小的苗条度(最大权值减最小权值),如果不能生成树,就输出-1: 思路:将所有的边按权值有小到大排序,然后枚举每一条边, ...

  8. 洛谷 题解 UVA1395 【苗条的生成树 Slim Span】

    [题意] 给出一个\(n(n<=100)\)个节点的的图,求最大边减最小边尽量小的生成树. [算法] \(Kruskal\) [分析] 首先把边按边权从小到大进行排序.对于一个连续的边集区间\( ...

  9. 洛谷 UVA1395 苗条的生成树 Slim Span

    题目链接 题目描述 求所有生成树中最大边权与最小边权差最小的,输出它们的差值. 题目分析 要求所有生成树中边权极差最小值,起初令人无从下手.但既然要求所有生成树中边权极差最小值,我们自然需要对每一棵生 ...

随机推荐

  1. Zxing 扫二维码

    1 http://blog.csdn.net/xiaanming/article/details/10163203 2 我会把一个可以运行的Demo云盘:http://pan.baidu.com/s/ ...

  2. Java Web编程的主要组件技术——Struts核心组件

    参考书籍:<J2EE开源编程精要15讲> Struts配置文件struts-config.xml Struts核心文件,可配置各种组件,包括Form Beans.Actions.Actio ...

  3. 【C#学习笔记】LinkedList容器使用

    using System; using System.Collections.Generic; namespace ConsoleApplication { class Program { stati ...

  4. mysql互为主从复制配置笔记

    MySQL-master1:192.168.72.128 MySQL-master2:192.168.72.129 OS版本:CentOS 5.4MySQL版本:5.5.9(主从复制的master和s ...

  5. liunx下mysql数据库使用之三范式,关系模型设计注意项,安装目录结构

    数据库的三范式第一范式===>每行记录的属性,是原子的,拆到不可拆为止.===>例如:一个人的籍贯,可以拆分为,省,市,县,乡,村 第二范式===>每行记录的非主属性(非主键属性), ...

  6. ANDROID开发之SQLite详解

    本文转自:http://www.cnblogs.com/Excellent/archive/2011/11/19/2254888.html

  7. u-boot 源码修改 bootcmd,IP ,BOOTARGS等参数

    uboot1.1.6\include\configs\smdk6410.h #define CONFIG_BOOTCOMMAND"nand read 0xc0008000 0x200000 ...

  8. centos软件环境

    1,保持能链接外网和yum的可用性. 注意:yum配置项中最好:keepcache=1 2,yum install gcc, gcc-c++, make, cmake, 3, ntfs-3g wget ...

  9. MyGeneration 数据库驱动为空

    重做系统后安装了MyGeneration  但是安装完成后发现驱动中没有驱动信息,查了下网上的解决方案发下下面的可以完美解决,特作备忘: The problem is because of multi ...

  10. 总结c++ primer中的notes

    转载:http://blog.csdn.net/ace_fei/article/details/7386517 说明: C++ Primer, Fourth Edition (中英文)下载地址:htt ...