//思路:用结构体保存一条边的信息(u,v,w),因为是求最小的生成树,所以把边排序后,从最小的边(起点)依次枚举可以构成的生成树

AC源码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;const int INF=(1<<30);
int n,m,MIN_NUM=INF,p[105];int findset(int x)
{return p[x]==x?x:p[x]=findset(p[x]);
}
struct Edge
{int u,v,w;Edge(int a,int b,int c):u(a),v(b),w(c){}bool operator<(const Edge& rhs){return w<rhs.w;}
};vector<Edge> Evec;
void solve()
{int len=Evec.size();for(int i=0;i<=len-(n-1);++i){int cnt=n;for(int k=1;k<=n;++k)p[k]=k;  for(int j=i;j<len;++j){int x=findset(Evec[j].u),y=findset(Evec[j].v);if(x!=y){p[x]=y;if(--cnt==1){MIN_NUM=min(MIN_NUM,Evec[j].w-Evec[i].w);break;}}}}
}int main()
{while(scanf("%d %d",&n,&m)&&n){Evec.clear();int u,v,w;while(m--){scanf("%d %d %d",&u,&v,&w);Evec.push_back(Edge(u,v,w));}sort(Evec.begin(),Evec.end());MIN_NUM=INF;solve();if(MIN_NUM==INF)printf("-1\n");elseprintf("%d\n",MIN_NUM);}return 0;
}

UVa1395(最小值最小生成树+并查集)相关推荐

  1. hdu 1233 还是畅通工程 Kruskal 最小生成树 并查集

    题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1233 模板题,kruskal求最小生成树. 并查集是个好东西啊  就是注意一点 输入边的信息时,角标 ...

  2. 4th 【最小生成树并查集】征兵

    征兵 [题目描述]: 一个国王,他拥有一个国家.最近他因为国库里钱太多了,闲着蛋疼要征集一只部队要保卫国家.他选定了N个女兵和M个男兵,但事实上每征集一个兵他就要花10000RMB,即使国库里钱再多也 ...

  3. hdu 1232 畅通工程 最小生成树 并查集

    1232的连接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 #include <iostream>#include <cstdio& ...

  4. UOJ14 UER #1 DZY Loves Graph(最小生成树+并查集)

    显然可以用可持久化并查集实现.考虑更简单的做法.如果没有撤销操作,用带撤销并查集暴力模拟即可,复杂度显然可以均摊.加上撤销操作,删除操作的复杂度不再能均摊,但注意到我们在删除时就可以知道他会不会被撤销 ...

  5. 村村通工程 最小生成树+并查集

    问题 D: 村村通工程 时间限制: 1 Sec 内存限制: 128 MB 题目描述 某国有N个村子,M条道路,为了实现"村村通工程",现在要"油漆"N-1条道路 ...

  6. jzoj3237-间谍派遣【最小生成树,并查集】

    正题 题目大意 一张图,第iii个点参加任务需要mkimk_imki​元,连接一条边需要一定费用,要求每个联通图都有参加任务的点,求最小费用. 解题思路 其实就是求若干个最小生成树然后这个最小生成树的 ...

  7. jzoj2940-生成输入数据【最小生成树,并查集】

    正题 题目大意 给一个完全图的唯一一颗最小生成树,求完全图最小边权之和. 解题思路 我们考虑在计算最小生成树的时候,将两个联通块合并时,我们会选择连接这两个联通块的最小的边. 那么我们就可以让每个联通 ...

  8. LeetCode 1489. 找到最小生成树里的关键边和伪关键边(并查集+kruskal最小生成树)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 n 个点的带权无向连通图,节点编号为 0 到 n-1 ,同时还有一个数组 edges ,其中 edges[i] = [fromi, toi, w ...

  9. 最小生成树——洛谷并查集、口袋的天空

    最小生成树--并查集 简单模板题-洛谷3367并查集 题目描述 如题,现在有一个并查集,你需要完成合并和查询操作. 输入格式 第一行包含两个整数 N,MN,M ,表示共有 NN 个元素和 MM 个操作 ...

最新文章

  1. mysql galaxy_优化mysql
  2. c#中反射技术在Unity中的运用
  3. python numpy.meshgrid() 函数的用法(快速生成坐标矩阵)
  4. select_arg_from_python相关的测试程序
  5. ssh免密登录(普通用户和root用户)
  6. Java并行计算线程池_干货!线程池+CountDownLatch,实现 多线程并发计算、汇总
  7. Android EditText 赋值与取值
  8. NIFI如何利用eclipse开发自己的Processor(下)
  9. windows10彻底杀死卡死的顽固进程
  10. js 省市下拉列表联动
  11. python办公自动化案例-用python进行办公自动化都需要学习什么知识呢?
  12. SpringSecurity系列(五) Spring Security 权限设计
  13. 开课吧Java课堂:什么是流?如何运用字节流和字符流?
  14. Cesium笔记(3):基本控件简介—ImageryProvider地图瓦片地图配
  15. 微信小程序中使用emoji表情
  16. 算法导论适合c语言吗,看《算法导论》需要多好的数学基础?
  17. win10修改用户名_大神帮您win10系统用户文件夹改名的修复方法
  18. 弘辽科技:淘宝直通车显示排查下架是什么?还能推广吗?
  19. Android插件化换肤
  20. ThreadLocal源码解析2.ThreadLocalMap

热门文章

  1. 电脑上录屏的软件有哪些,屏幕录制软件哪个好用
  2. 胆结石饮食有什么禁忌?
  3. c语言中中文字库,读取汉字库中的汉字
  4. SharePoint 收集签名工作流 配置步骤
  5. python 爬取整部漫画(简单的图片爬取)
  6. 福利分享:1024程序员节,给大家推荐一个极简win10
  7. 科技交流英语(2022秋)Unit 6 test
  8. 小米手机Android内存管理基本情况介绍
  9. intel显卡驱动安装时报错【无法为此计算机验证正在安装的驱动程序】
  10. java 生成水印图片工具类, MultipartFile接收上传的图片,处理成加水印之后的MultipartFile