当前位置: 首页 > news >正文

18448 最小生成树

### 思路
使用Kruskal算法求解图的最小生成树。Kruskal算法通过对所有边按权值排序,然后逐步选择最小权值的边,确保不会形成环,直到构建出最小生成树。

### 伪代码
1. 读取输入的结点数`n`和边数`m`。
2. 读取每条边的信息,存储在边列表中。
3. 对边列表按权值进行排序。
4. 初始化并查集。
5. 遍历排序后的边列表,逐步选择边并加入最小生成树,确保不会形成环。
6. 输出最小生成树的边权和。

### C++代码

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;struct Edge {int u, v;long long w;bool operator<(const Edge& other) const {return w < other.w;}
};vector<int> parent, rankVec;int find(int u) {if (parent[u] != u) {parent[u] = find(parent[u]);}return parent[u];
}void unionSets(int u, int v) {int rootU = find(u);int rootV = find(v);if (rootU != rootV) {if (rankVec[rootU] > rankVec[rootV]) {parent[rootV] = rootU;} else if (rankVec[rootU] < rankVec[rootV]) {parent[rootU] = rootV;} else {parent[rootV] = rootU;rankVec[rootU]++;}}
}int main() {int n, m;cin >> n >> m;vector<Edge> edges(m);for (int i = 0; i < m; ++i) {cin >> edges[i].u >> edges[i].v >> edges[i].w;}sort(edges.begin(), edges.end());parent.resize(n + 1);rankVec.resize(n + 1, 0);for (int i = 1; i <= n; ++i) {parent[i] = i;}long long mstWeight = 0;for (const auto& edge : edges) {if (find(edge.u) != find(edge.v)) {unionSets(edge.u, edge.v);mstWeight += edge.w;}}cout << mstWeight << endl;return 0;
}

### 总结
该代码使用Kruskal算法求解图的最小生成树。通过对边按权值排序,使用并查集管理连通性,逐步选择最小权值的边,确保不会形成环,最终输出最小生成树的边权和。

http://www.lryc.cn/news/454898.html

相关文章:

  • 前端工程化 - Vue
  • 使用 NVIDIA H100 上的 Azure 机密计算释放隐私保护 AI 的潜力
  • 目标检测与图像分类:有什么区别?各自的使用场景是什么?
  • Lua 数据类型
  • 复现文章:R语言复现文章画图
  • 东方仙盟——软件终端架构思维———未来之窗行业应用跨平台架构
  • 支持向量机(SVM)基础教程
  • Python小示例——质地不均匀的硬币概率统计
  • 京东web 京东e卡绑定 第二部分分析
  • 【数据结构与算法】Greedy Algorithm
  • Ubuntu22.04之mpv播放器高频快捷键(二百七十)
  • 新闻推荐系统:Spring Boot的可扩展性
  • 目录工具类 - C#小函数类推荐
  • 速盾:如何判断高防服务器的防御是否真实?
  • MySQL连接查询:联合查询
  • Gitea 数据迁移
  • MySQL 绪论
  • 什么是 HTTP Get + Preflight 请求
  • (JAVA)开始熟悉 “二叉树” 的数据结构
  • 【Linux】Linux命令与操作详解(一)文件管理(文件命令)、用户与用户组管理(创建、删除用户/组)
  • Hadoop大数据入门——Hive-SQL语法大全
  • 个人开发主页
  • 思维+数论,CF 922C - Cave Painting
  • 如何下单PCB板和STM贴片服务- 嘉立创EDA
  • MySQL连接查询:外连接
  • 108页PPT丨OGSM战略规划框架:实现企业目标的系统化方法论
  • 文件查找与打包压缩,文件发送
  • sv标准研读第十二章-过程性编程语句
  • MySQL-联合查询
  • 突触可塑性与STDP:神经网络中的自我调整机制