题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5624

解题思路:

题目中要求每个点都连通,且保证最大边与最小边的差值最小。可以想到的是利用最小生成树的方式解决。每次枚举一条最小边,然后依次寻找比它大的边看是否可以组成一个最小生成树即可。

PS:这题的数据水了。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;const int maxn = 2005;
const int maxm = 15005;
const int inf = 0x3f3f3f3f;
struct Edge
{int u,v,c;bool operator < (const Edge &rhs) const{return c < rhs.c;}
}edge[maxm];
int n,m,ans,fa[maxn],sum[maxn];int find(int x)
{if(fa[x] == x) return x;return fa[x] = find(fa[x]);
}int main()
{int t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);for(int i = 1; i <= m; i++)scanf("%d%d%d",&edge[i].u,&edge[i].v,&edge[i].c);sort(edge+1,edge+1+m);ans = inf;for(int i = 1; i <= m; i++){int maxv = edge[i].c;int minv = edge[i].c;for(int j = 1; j <= n; j++) fa[j] = j,sum[j] = 1;for(int j = i; j <= m; j++){int u = edge[j].u,v = edge[j].v;int fu = find(u);int fv = find(v);if(fu != fv){maxv = edge[j].c;fa[fv] = fu;sum[fu] += sum[fv];}}if(sum[find(n)] == n) ans = min(ans,maxv - minv);}if(ans == inf) printf("-1\n");else printf("%d\n",ans);}return 0;
}

hdu 5624 KK's Reconstruction(最小生成树)相关推荐

  1. HDU 5624 KK's Reconstruction

    这题目测是数据水了.我这种暴力写法显然是可以卡超时的. 假设有2000个点,15000条边,前面10000条不能构成树,后面5000条可以,这种数据显然可以卡超时. #include <stdi ...

  2. HDU 1301 Jungle Roads(裸最小生成树)

    题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...

  3. hdu 1879 继续通畅工程(最小生成树)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1879 /************************************************* ...

  4. HDU 1162 Eddy's picture (最小生成树)(java版)

    Eddy's picture 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 --每天在线,欢迎留言谈论. 题目大意: 给你N个点,求把这N个点 ...

  5. HDU 4408 Minimum Spanning Tree 最小生成树计数

    http://acm.hdu.edu.cn/showproblem.php?pid=4408 题意:求最小生成树个数 题解:对于Kruskal算法,我们发现,最小生成树要想用多种方法就要有长度相同的边 ...

  6. HDU-5624 -KK's Reconstruction(并查集+枚举)

    Problem Description Our lovely KK has a difficult Social problem. A big earthquake happened in his a ...

  7. hdu 1879 继续畅通工程 最小生成树

    继续畅通工程                                                                             Time Limit: 2000/ ...

  8. hdu 1233 还是畅通工程 最小生成树(prim算法 + kruskal算法)

    还是畅通工程                                                                            Time Limit: 4000/2 ...

  9. hdu 1233 还是畅通工程(最小生成树的Prim和Kruskal两种算法的c++实现)(prim算法详解)...

    赤裸裸滴最小生成树(MST),刚学的玩意,用两种方法熟练一下.(都是greedy) Kruskal方法:先对边按照代价非递减排序,再不断添加边且不产生环路,当边数=点数-1结束.判断加入(v,w)是否 ...

最新文章

  1. java按钮监听休眠_java-休眠监控解决方案
  2. torch max 判断与筛选
  3. wxPython和PyQt谁才是最赞的Python GUI库?
  4. STM32的独立看门狗(IWDG)看门狗时间计算
  5. ubuntu android设备 no permissions
  6. Griview中的删除按钮添加“确认提示”
  7. 35载再忆华罗庚精神:我们应培养怎样的数学大师?​
  8. 2018亚太CDN峰会开幕,阿里云王海华解读云+端+AI的短视频最佳实践
  9. 二层交换机 不在同一子网_从二层交换机来说为什么三层交换机比路由器转发速率快...
  10. [转] CPU GPU TPU
  11. 给mysql 授权 命令_mysql中授权命令grant用法详解:
  12. Get value from agent failed:cannot connect to[[192.168.1.113];10050]:[111]Co
  13. 5G时代下,如何做好个人信息保护?
  14. linux 设备树 usb控制器,linux 设备树中 dwc3 节点的phys参数含义
  15. 网易之小易最近在数学课上学习到了集合的概念,集合有三个特征:1.确定性 2.互异性 3.无序性.需要根据给定的w,x,y,z,求出集合中一共有多少个元素。
  16. powerquery分组_PowerQuery分组返回所有行之后还原列顺序
  17. JavaScript的函数(function)
  18. 【我的Android进阶之旅】Android 混淆文件资源分类整理之二:将混淆文件拆分成更小粒度的混淆文件
  19. 6、查询学过“张三”老师所教的所有课的同学的学号、姓名(重点)
  20. uefi装完系统后无法引导_uefi gpt安装win7启动不了如何解决_uefi gpt装win7后无法启动怎么办...

热门文章

  1. 中国金融数字科创大赛丨神策数据客户——深圳农商银行、昆山农商银行斩获「双奖」
  2. 神策数据潘书荟:解读千人千面,洞悉数据智能的价值
  3. 用户流失的事前预警与事后分析
  4. 一篇讲清:数据采集与埋点
  5. 盛大游戏回归A股进入倒计时:估值近300亿 腾讯年初曾入股
  6. MyBatis Mapper Demo
  7. 预计2021年移动渠道将占中国网络广告支出82%
  8. win7 绿色版MySQL安装与配置
  9. Object-C---gt;Swift之(三)nil合并运算符、范围运算符
  10. 客户端soap【JAX-WS入门系列】第04章_SOAP异常处理和Handler处理