![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
最小生产树
ACM-SKER
这个人很帅
展开
-
最小生成树
一.kruskal(克鲁斯卡尔)算法(易理解)(稀疏图) 这个算法就是将每条边用结构体进行存储下来,(例如egde.start表示边的起点,egde.to标识终点,egde.val 表示终点)接着对每条边进行排序,权值(egde.val)小的在前面,接着我们采用并查集的方法从前面开始枚举 每一条边来记录关系(如果已经存在关系就跳过),最后当建立的关系数等于节点数减一时,说明已经建立好 了最小生成树 例题:洛谷P3366 输入格式 第一行包含两个整数 N,M,表示该图共有 N个结点和 M条无向边。原创 2022-04-13 20:39:16 · 268 阅读 · 0 评论 -
每日一日:洛谷P1194 买礼物
链接:P1194 买礼物 思路:我们以0为起点来建立一棵最小生成树,那么肯定需要增加0到任意一个顶点的边,权值为A。最后这棵树总的权值即为答案 #include <bits/stdc++.h> using namespace std; int A,B; struct edge{ int start,to,val; }bian[200007]; int f[200007]; int ans=0; int find(int x){//并查集 if(f[x]==x) return x; e原创 2022-04-13 20:34:43 · 404 阅读 · 0 评论