首页 > 其他分享 >最小生成树

最小生成树

时间:2023-09-10 12:00:40浏览次数:26  
标签:return get int 最小 生成 fa edge const

一个定理:必定包含权值最小的边
不然把小边加入,删除环上任何一条边结果都更优
两个算法:

  1. Kruskal
    贪心算法,每次判断最短的边加入是否会形成环,用并查集判断
    可以加就加入
const int N = 200010 ;
const int M = 500010 ;


int n, m ;
int fa[N] ;

struct edge {
	int x, y, z ;
	friend bool operator < (const edge &a, const edge &b) {
		return a.z < b.z ;
	}
} a[M] ;

int get(int x) {
	if (x == fa[x]) return x ;
	return fa[x] = get(fa[x]) ;
}

void merge(int x, int y) {
	fa[x] = y ;
}
int main() {
	scanf("%d%d", &n, &m) ;
	for (int i = 1; i <= m; i++) scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].z) ;
	sort(a + 1, a + m + 1) ;
	for (int i = 1; i <= n; i++) fa[i] = i ;
	ll ans = 0 ;
	for (int i = 1; i <= m; i++) {
		int x = get(a[i].x), y = get(a[i].y) ;
		if (x == y) continue ;
		merge(x, y) ;
		ans += a[i].z ;
	}
	printf("%lld\n", ans) ;
}

标签:return,get,int,最小,生成,fa,edge,const
From: https://www.cnblogs.com/lighthqg/p/17690976.html

相关文章

  • 开课吧前端1期.阶段2:ES6详解-4 Promise generator-认识生成器函数 generator-yield
    10、PromisePromise--承诺异步:操作之间没啥关系,同时进行多个操作同步:同时只能做一件事优缺点异步:代码更复杂同步:代码简单 //比如我要请求4个数据,真正生产还要判断,没法看了,缩进//异步:特别麻烦ajax('/banners',function(banners)){ajax('/hotItem......
  • 用 Visual Studio Code 开发 Angular 应用自动生成的 .angular 文件夹
    在Angular开发中,项目根目录下的.angular文件夹是AngularCLI工具的一部分,它包含了一些配置和缓存文件,用于提高开发效率和构建性能。.angular文件夹的作用主要包括:缓存构建信息:.angular文件夹中包含了一些缓存文件,用于存储先前构建的信息,以加速后续的构建过程。这有助于......
  • 中间代码生成
          ......
  • 目标代码 生成
             ......
  • javaDos生成API文档
    JavaDos生成文档/**@authorchenxiao作者@version1.0版本号@since1.0自然号*//***@authorchenxiao*@version1.0*@since1.0*/publicclassStudent{  privateStringname;  privateIntegerage;​  /**  *@authorchenxiao ......
  • 生成一个vue3的博客
    Vue3是一个流行的JavaScript框架,用于构建用户界面。要生成一个Vue3的博客,您需要按照以下步骤进行操作:首先,确保您的环境中已经安装了Node.js和npm(Node包管理器)。您可以通过在命令行中运行node-v和npm-v来检查它们的版本。在您喜欢的目录中创建一个新的Vue3项目......
  • 图像描述生成
    之前做毕业设计时,苦于没有高质量的图文数据对,了解到可以由图片生成文本,但也就体验了下模型效果,并没有进行这方面的学习,现在借此机会了解了解。前言imagecaption的目标就是根据提供的图像,输出对应的文字描述。如下图所示:对于图片描述任务,应该尽可能写实,即不需要华丽的语句,只需要陈......
  • 【Python 自动化】小说推文一键生成思路概述
    最近看了一下小说推文成品软件的思路,发现可以完全迁移到我的BookerAutoVideo上面来。这篇短文里面,我试着分析一下整个推文视频生成的流程,以及简要阐述一下有什么工具。整体流程是这样:分句原文是按照段落组织的,我们可能希望按照句子生成图片。于是我们需要把段落拆成句子,像这......
  • 代码随想录算法训练营第二天| 977.有序数组的平方,209.长度最小的子数列,59.螺旋矩阵Ⅱ
    977.有序数组的平方双指针法因为负数平方后也会变大,所以较大的平方值只可能在靠近两端的位置,越往中间走平方值必定越小。所以,在原数组两端各定义一个指针,慢慢往中间走,然后把平方值按顺序放到新数组里即可。classSolution{public:vector<int>sortedSquares(vector<i......
  • P9488 ZHY 的生成树
    2023-07-3119:29:29solutionP9488ZHY的生成树前言这道题就非常的巧,下午上午上课刚讲完筛法,下午就考到了一个很像筛法的题。当时看到这个数据范围尽往线性做法想了,后面实在想不到就开始想如何带\(\log\)做,先拿个\(60\)pts再说。思路看到这样的求最大生成树,首先先排除......