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

洛谷 P1195 口袋的天空

自用。

题目传送门:口袋的天空 - 洛谷

题解:Inori_333

参考题解:题解 P1195 【口袋的天空】 - 洛谷专栏

/*P1195 口袋的天空https://www.luogu.com.cn/problem/P11952024/11/03  submit:inori333
*/#include <iostream>
#include <algorithm>
using namespace std;int n, m, k; // n个点,m条边,连成k棵树,就是说要用n个节点连出k棵树。也就是说要用n - k条边连出k棵树。 
int ans = 0;//最终的最小生成树耗费
int cnt = 0;//已经连通的边数struct edge{int u, v, w;//u,v是边的两个端点,w是边的权值
} e[200005];//边的数组int f[200005];//并查集状态数组bool cmp(edge a,edge b){return a.w < b.w;
}//重载比较函数int find(int x){if(f[x]==x)return x;elsereturn f[x] = find(f[x]);
}//并查集查找int main(){cin >> n >> m >> k;// 初始化并查集for (int i = 1; i <= n;i++){f[i] = i;}for (int i = 1; i <= m;i++){cin >> e[i].u >> e[i].v >> e[i].w;}sort(e + 1, e + 1 + m, cmp);// Kruskal算法,共m条边,所以循环m次for (int i = 1; i <= m; i++){if (find(e[i].u) != find(e[i].v)){                                   // 如果两个节点的祖宗不相等,也就是说,不会构成回路f[find(e[i].u)] = find(e[i].v); // 将他们合并成同一个祖宗ans += e[i].w;                  // 加上这条边的权值cnt++;                          // 边数加一}if(cnt==n-k)break;}if (cnt==n-k)cout << ans;elsecout<<"No Answer";return 0;
}

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

相关文章:

  • ffmpeg视频滤镜:膨胀操作-dilation
  • 3.3 windows,ReactOS系统中页面的换出----2,结构体PHYSICAL_PAGE
  • lvgl
  • 【django】RESTful API 设计指南
  • 提升大数据量分页查询性能:深分页优化全解
  • WPF 实现冒泡排序可视化
  • Claude 3.5 新功能 支持对 100 页的PDF 图像、图表和图形进行可视化分析
  • 正式开源:从 Greenplum 到 Cloudberry 迁移工具 cbcopy 发布
  • Python如何读写文件?
  • 100种算法【Python版】第38篇——Boyer-Moore算法
  • 贪心算法---java---黑马
  • 程序员的减压秘籍:高效与健康的平衡艺术
  • 2024 年 QEMU 峰会纪要
  • C++/list
  • 刘艳兵-DBA015-对于属于默认undo撤销表空间的数据文件的丢失,哪条语句是正确的?
  • 树莓派基本设置--10.使用MIPI摄像头
  • 【ARCGIS实验】地形特征线的提取
  • HTML 基础标签——表格标签<table>
  • 线程函数和线程启动的几种不同形式
  • 数组排序简介-基数排序(Radix Sort)
  • 进程间通信(命名管道 共享内存)
  • Python 网络爬虫教程:从入门到高级的全面指南
  • 深度学习:正则化(Regularization)详细解释
  • Freertos学习日志(1)-基础知识
  • CentOS9 Stream 支持输入中文
  • 基于向量检索的RAG大模型
  • 【力扣 + 牛客 | SQL题 | 每日5题】牛客SQL热题216,217,223
  • Unity humanoid 模型头发动画失效问题
  • 最全Kafka知识宝典之Kafka的基本使用
  • 机器学习中的数据可视化:常用库、单变量图与多变量图绘制方法