news 2026/8/21 22:56:35

k算法最小生成树的最优化,例题PTA:毁灭

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
k算法最小生成树的最优化,例题PTA:毁灭

题目链接

校内链接:7-10 毁灭 - 测试模拟1,没有的依然可以看题目图片,在下面

题目

图解

parent数组进行set查找的路径压缩,cnt数组原理判断更少的set集合来更新新集合的parent

其他地方,排序依旧是堆排序,用优先队列,定义一个struct edge并重载 < 符号就好了

我们接下来只图解整个parent数组和cnt数组怎么使用

其实这里我们加一个判定,每回在对cnt进行操作的时候判断cnt的大小是否等于N就可以判断是否成功生成了最小生成树

这里我们例题是一个小变种我们要计算所有不在最小生成树的边的路径大小总和

代码

#include<iostream> #include<queue> using namespace std; const int N=2e5+5; int fa[N]; int cnt[N]; struct edge{ int u; int v; long long len; edge(int U=0,int V=0,int Len=0):u(U),v(V),len(Len){}; bool operator <(const edge& y)const{ return len>y.len; }; }; int findfa(int x) { if(fa[x]==x) return x; return findfa(fa[x]); } int main() { int n,m; long long sum;sum=0; priority_queue<edge>queue1; cin>>n>>m; for(int i=1;i<=n;i++) fa[i]=i,cnt[i]++; for(int i=0;i<m;i++) { int u,v,len; cin>>u>>v>>len; queue1.push(edge(u,v,len)); } while(!queue1.empty()) { edge ed=queue1.top(); queue1.pop(); int u=ed.u,v=ed.v,len=ed.len; int fau=findfa(u),fav=findfa(v); if(fau!=fav) { if(cnt[fav]>cnt[fau]) { fa[fau]=fa[fav]; cnt[fav]+=cnt[fau]; } else { fa[fav]=fa[fau]; cnt[fau]+=cnt[fav]; } } else if(len>0) sum+=len; } cout<<sum; }

结果

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 18:33:42

EmotiVoice在脱口秀AI主持人开发中的潜力

EmotiVoice在脱口秀AI主持人开发中的潜力 在一场虚拟直播间里&#xff0c;观众正被一位“主持人”逗得前仰后合——他语调起伏精准&#xff0c;一句调侃前恰到好处地停顿半秒&#xff0c;反转时音高骤升&#xff0c;愤怒中夹杂着戏谑。弹幕刷起“这真的是AI&#xff1f;”、“语…

作者头像 李华
网站建设 2026/8/19 23:45:19

多版本管理终极指南:告别版本切换烦恼的智能解决方案

多版本管理终极指南&#xff1a;告别版本切换烦恼的智能解决方案 【免费下载链接】Blender-Launcher Standalone client for managing official builds of Blender 3D 项目地址: https://gitcode.com/gh_mirrors/bl/Blender-Launcher 你是否曾经因为需要在不同Blender版…

作者头像 李华
网站建设 2026/8/21 20:59:43

飞书文档转Markdown完整教程:零基础快速上手

飞书文档转Markdown完整教程&#xff1a;零基础快速上手 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 还在为飞书文档格式转换而烦恼吗&#xff1f;每次复制粘贴都要重新调整格式&#xff0c;浪…

作者头像 李华
网站建设 2026/8/21 1:46:15

47、网络故障排查与测试全攻略

网络故障排查与测试全攻略 1. 网络基础工具与PPP连接测试 1.1 arpwatch与PPP连接概述 arpwatch在解决重复地址问题以及记录网络中的以太网/IP地址映射方面非常有用。不过,TCP/IP并非仅运行在以太网上,有时也需要调试通过调制解调器连接运行的PPP链路。 1.2 检查PPP接口 …

作者头像 李华
网站建设 2026/8/21 11:49:07

强力姿态搜索:彻底革新你的动作识别工作流程

强力姿态搜索&#xff1a;彻底革新你的动作识别工作流程 【免费下载链接】pose-search x6ud.github.io/pose-search 项目地址: https://gitcode.com/gh_mirrors/po/pose-search 还在为复杂的姿态分析工具而烦恼吗&#xff1f;每天面对海量的图像数据&#xff0c;却难以快…

作者头像 李华
网站建设 2026/8/21 16:46:31

Windows系统优化革命:AtlasOS智能配置实战指南

Windows系统优化革命&#xff1a;AtlasOS智能配置实战指南 【免费下载链接】Atlas &#x1f680; An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas1/Atlas…

作者头像 李华