最小生成树,回忆复习篇。

以前听过一遍最小生成树,可惜,当时没弄会。过了几天就全忘了。而如今在做LCA的时候,woc我居然不会最小生成树了。

所以来回忆一下最小生成树。

kruskal算法。这个算法的主要工具就是,排序,并查集。这里的排序是一种贪心做法。把边权最小的边排在前面,之后开始一个一个取。每次都取小的边,取到n-1条边(刚好遍历每个点)但是每次取的时候都要保证这条边加在这棵最小生成树里面不会产生环,所以,这里用并查集就是记录每次加边时的点,不让加的这条边的两节点连在一起之后产生环。如果这条边连上没产生环,那么它们的父亲就相连.这样让这个并查集组成的树的节点相连,而不是子节点相连,这个地方可以去翻阅并查集的资料。这里不在多说什么。

其实就是这么简单,并不是很难。这棵树遍历了所有的点,而且保证最短。而这就是一个工具模型。嗯就是这样。

我觉得这个没必要模拟。所以这个记住

1,疯狂调sort

2,瞎基本用并查集连边。

嗯,记住如果要使用得从新建树。

好了。来一道模版压压惊。

codevs1078 最小生成树

题目描述 Description

农民约翰被选为他们镇的镇长!他其中一个竞选承诺就是在镇上建立起互联网,并连接到所有的农场。当然,他需要你的帮助。 约翰已经给他的农场安排了一条高速的网络线路,他想把这条线路共享给其他农场。为了使花费最少,他想铺设最短的光纤去连接所有的农场。 你将得到一份各农场之间连接费用的列表,你必须找出能连接所有农场并所用光纤最短的方案。 每两个农场间的距离不会超过100000

输入描述 Input Description

第一行: 农场的个数,N(3<=N<=100)。

第二行..结尾: 接下来的行包含了一个N*N的矩阵,表示每个农场之间的距离。理论上,他们是N行,每行由N个用空格分隔的数组成,实际上,他们每行限制在80个字符以内,因此,某些行会紧接着另一些行。当然,对角线将会是0,因为线路从第i个农场到它本身的距离在本题中没有意义。

输出描述 Output Description

只有一个输出,是连接到每个农场的光纤的最小长度和。

样例输入 Sample Input

4

0  4  9 21

4  0  8 17

9  8  0 16

21 17 16  0

样例输出 Sample Output

28

这道题,就是找一个最小生成树之后把边都加起来

#include<cstdio>
#include<string.h>
#include<algorithm>
using namespace std;
struct node{int v,next,val;
}edge[10001];
struct node_1{int x,y,z;
}map_1[10001];
int father[100001],head[100001];
int find_1(int x)
{return father[x]==x?x:father[x]=find_1(father[x]);//并查集路径优化。
}
int cmp(node_1 a,node_1 b)
{return a.z<b.z;
}
int main()
{int n,z,cnt=0;memset(head,-1,sizeof(head));scanf("%d",&n);for(int i=1;i<=n;++i)father[i]=i;for(int i=1;i<=n;++i)for(int j=1;j<=n;++j){scanf("%d",&z);if(j<=i)continue;map_1[++cnt].x=i;map_1[cnt].y=j;map_1[cnt].z=z;}sort(map_1+1,map_1+1+cnt,cmp);int ans=0,cnt_1=0;for(int i=1;i<=cnt;i++)//这里的cnt很有趣。因为前面的n-1条边可能不会是最小生成树。所以都要遍历一边。{int la=find_1(map_1[i].x),lb=find_1(map_1[i].y);if(la!=lb)//祖宗不一样所以连在一起不会成环。{father[lb]=la;  ans+=map_1[i].z;++cnt_1;}if(cnt_1==n-1)break;//注意取边的边数。}printf("%d\n",ans);return 0;
}

转载于:https://www.cnblogs.com/uncle-lu/p/5928126.html

最小生成树,回忆复习篇。相关推荐

  1. C语言复习篇之数组与指针

    C语言复习篇之数组与指针 学习了一段时间的嵌入式linux了,学习中有很多的东西需要总结,有经验有教训,我觉得把他写下来会更好,就当做是一种笔记的形式,记录学习中的点点滴滴,不仅仅自己可以经常复习,也 ...

  2. 用不同的姿势求逆序对(复习篇)

    用不同的姿势求逆序对(复习篇) 文章目录 用不同的姿势求逆序对(复习篇) 前言 讲解 归并排序 树状数组 线段树 题目 思路 代码 归并排序求逆序对 树状数组求逆序对 线段树求逆序对 历届试题 小朋友 ...

  3. NOIP复习篇———动态规划

    NOIP复习篇---动态规划 ------------------------------------------------------------------------------------- ...

  4. NOIP复习篇———贪心

    NOIP复习篇---贪心 --------------------------------------------------------------------------------------- ...

  5. NOIP复习篇———枚举

    NOIP复习篇---枚举 --------------------------------------------------------------------------------------- ...

  6. Android期末复习篇_传智课后习题以及答案(选择、填空、判断、简答、编码题)

    写在前面 此为移动应用开发传智课后习题及答案,供期末复习使用,注意 答案仅供参考 加粗题目为强调 题型涉及:选择.判断.填空.简答.编程题 另8章习题及答案汇总:Android期末复习篇_8章节练习题 ...

  7. 扩展欧几里得复习篇。

    扩展欧几里得复习篇. 由于多校考了欧几里得,所以这里复习一波扩欧. 这里主要讲解利用扩欧求解二元一次方程的整数解问题. 0.求解: a x + b y = g c d ( a , b ) ax+by= ...

  8. 2019秋招备战复习篇

    @TOC## ? 目录 ➕ C/C++ ⭐️ Effective ? STL 〽️ 数据结构 ⚡️ 算法 ❓ Problems ? 操作系统 ☁️ 计算机网络 ? 网络编程 ? 数据库 ? 设计模式 ...

  9. HTML+CSS的基础复习篇~

    ---恢复内容开始--- 语义化,让你的网页更好的被搜索引擎理解 在这一章节我们要开始把网页中常用到的标签一 一向大家介绍,学习这一章节的时候要记住学习html标签过程中,主要注意两个方面的学习:标签 ...

最新文章

  1. DARPA 2020财年研发预算 人工智能应用研究投资急剧增长
  2. NFS mount failed, reason given by server: Permission denied ---nfs挂载失败
  3. Linux快速搭建FTP服务器
  4. 随机抽样一致算法(Random sample consensus,RANSAC)
  5. 下载 Bootstrap3 的 Sass 版本
  6. 删除Github上项目
  7. iOS 客户端对于运营商劫持的一点点对抗方式
  8. scratch趣味编程——挖矿小游戏
  9. JetBrain Rider使用技巧(持续更新)
  10. win10桌面频繁刷新
  11. 看院线电影就用移动电影院V2.0App
  12. dns 劫持什么意思、dns 劫持原理及几种解决方法
  13. Html网页设计-羽毛球网站设计
  14. Flume自定义拦截器
  15. 20:关于x++和++x的用法
  16. 今天是值得纪念的一天!
  17. linux 制作iso 和 刻录DVD
  18. Java反射到底反射什么?
  19. 难以置信的成就“楼天成”
  20. Element UI 日期范围选择器限制只能选今天之前的时间,或者只能选今天之后的时间

热门文章

  1. accept 阻塞_TCP网络编程中connect()、listen()和accept()三者之间的关系
  2. android wear中国版,AndroidWear中国版App——小白上手指南
  3. 服务器一般安装那种centos_CentOS系统云服务器宝塔面板安装以及微信小程序服务器搭建...
  4. 用java语言编写石头剪刀布获胜法_石头剪刀布Java实现
  5. 高岭土吸附阳离子_水分子在高岭土中吸附特性的蒙特卡罗模拟研究
  6. STM8学习笔记---PWM变频输出
  7. NYOJ-非洲小孩(贪心)
  8. python处理数据集并制作词云图
  9. Qt DLL总结【三】-VS2008+Qt 使用QPluginLoader访问DLL
  10. 《RECURRENT BATCH NORMALIZATION》