代码:

  1. #include <set>
  2. #include <queue>
  3. #include <cmath>
  4. #include <cstdio>
  5. #include <cstring>
  6. #include <cstdlib>
  7. #include <iostream>
  8. #include <algorithm>
  9. #include <map>
  10. using namespace std;
  11. struct node
  12. {
  13. int s,t,w;
  14. }A[10000];
  15. int N,M;
  16. int father[200];
  17. int tot=0;
  18. void init()
  19. {
  20. for(int i=0;i<200;i++)
  21. father[i]=i;
  22. tot=0;
  23. }
  24. int find(int x)
  25. {
  26. if(x!=father[x])
  27. father[x]=find(father[x]);
  28. return father[x];
  29. }
  30. bool cmp(node a,node b)
  31. {
  32. return a.w<b.w;
  33. }
  34. void input()
  35. {
  36. for(int i=1;i<=M;i++)
  37. {
  38. scanf("%d%d%d",&A[i].s,&A[i].t,&A[i].w);
  39. }
  40. sort(A+1,A+M+1,cmp);
  41. }
  42. void solve()
  43. {
  44. int ans=0x3f3f3f3f;
  45. for(int L=1;L<=M;L++)
  46. {
  47. init();
  48. for(int R=L;R<=M;R++)
  49. {
  50. int xx=find(A[R].s),yy=find(A[R].t);
  51. if(xx!=yy)
  52. {
  53. tot++;
  54. father[xx]=yy;
  55. }
  56. if(tot==N-1)
  57. {
  58. ans=min(ans,A[R].w-A[L].w);
  59. break;
  60. }
  61. }
  62. }
  63. if(ans==0x3f3f3f3f) printf("%d\n",-1);
  64. else printf("%d\n",ans);
  65. }
  66. int main()
  67. {
  68. // freopen("a.in","r",stdin);
  69. while(cin>>N>>M&&(N||M))
  70. {
  71. input();
  72. solve();
  73. }
  74. }

[生成树][Uva1395][Slim Span]的更多相关文章

  1. UVA1395 Slim Span(kruskal)

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

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

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

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

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

  4. 【Kruskal】Slim Span

    [Uva1395]Slim Span 题目略…… 试题分析:codevs1001舒适的路线上加一个判一下连通性就好,顺便把除改成减 代码: #include<iostream> #incl ...

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

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

  6. POJ 3522 Slim Span 最小差值生成树

    Slim Span Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3522 Description Gi ...

  7. 最小生成树POJ3522 Slim Span[kruskal]

    Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7594   Accepted: 4029 Descrip ...

  8. poj 3522 Slim Span (最小生成树kruskal)

    http://poj.org/problem?id=3522 Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions ...

  9. Slim Span(Kruskal)

    题目链接:http://poj.org/problem?id=3522   Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Subm ...

随机推荐

  1. WEB服务器3--IIS7.0安装和配置

    安装Web服务器(IIS) 点击开始菜单->所有程序->管理工具->服务器管理器,启动服务器管理器,界面如下: 在服务器管理器中,选择角色,你将可以看到角色总视图. 点击添加角色,会 ...

  2. Android开发记录(转)

    一.Android模拟器相关 1. Android模拟器安装 Market 模拟器默认没有安装 Market,看到网上有较为复杂的安装方法,也有1个简单的,试了简单的,在 Android2.2 模拟器 ...

  3. ResourceBundle读取中文properties文件问题

    昨天遇到一个问题,用ResourceBundle读取中文字符串资源文件时,死活读不出来. 一开始以为是文件路径不对,后来发现如果默认properties文件时英文就没问题.我的项目代码是在src目录下 ...

  4. T4模板试水篇1_入门

    T4模板作为VS自带的一套代码生成器,功能有多强大我也不知道,最近查找了一些资料学习一下,做个笔记 更详细的资料参见: MSDN: http://msdn.microsoft.com/zh-cn/li ...

  5. Virtual Environments

    virtualenv 再另一篇随笔中已经提到过virtualenv.如果我们有好几个不同的项目,他们需要的第三方包版本不同,那怎么办呢.这时候就需要virtualenv创建一个虚拟环境,里面包含了一个 ...

  6. 将String转化为Long,并将Long转化为Date

    package org.ljh.test.javaee; import java.text.SimpleDateFormat; import java.util.Date; public class ...

  7. deepin 2014 安装后 ,grub出错

    今天deepin2013一直出错,就想尝试下2014,so,果断下载安装,然后悲剧的又被坑了. 环境win7位于sda,deepin安装在sdb 安装完毕后,启动报错,找不到设备uuid 无奈之下,重 ...

  8. project euler 26:Reciprocal cycles

    A unit fraction contains 1 in the numerator. The decimal representation of the unit fractions with d ...

  9. EF 请求数据是缓存 求大神解释

    // //AliexpressEntities MyaliexpressEntities 为了事物一致性 在别的方法里面传过来的 实质还是 (  AliexpressEntities aliexpre ...

  10. TabHost刷新activity的方法

    在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次 ...