news 2026/4/23 13:01:46

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/4/23 12:12:42

49、深入了解Linux网络服务器安装与调试

深入了解Linux网络服务器安装与调试 1. DNS查询相关工具及信息解析 在网络环境中,进行域名服务的测试与调试时,有三个强大的工具: dig 、 host 和 nslookup 。其中, dig 的输出包含多个重要部分: - 查询部分 :显示发送到服务器的查询内容。 - 权威部分 :…

作者头像 李华
网站建设 2026/4/18 9:34:08

Upscayl批量放大功能失效终极指南:从故障诊断到性能优化

Upscayl批量放大功能失效终极指南&#xff1a;从故障诊断到性能优化 【免费下载链接】upscayl &#x1f199; Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Tr…

作者头像 李华
网站建设 2026/4/23 9:33:48

Android应用虚拟化革命:从沙盒隔离到多开生态的技术实践

你是否曾想过&#xff0c;为什么我们需要在手机上安装多个微信账号&#xff1f;为什么企业级应用需要与个人数据严格隔离&#xff1f;在移动互联网深度发展的今天&#xff0c;Android应用虚拟化技术正以前所未有的方式改变着我们的使用体验。 【免费下载链接】VirtualApp Virtu…

作者头像 李华
网站建设 2026/4/19 21:07:13

dupeGuru深度解析:高效重复文件查找技术实战指南

dupeGuru深度解析&#xff1a;高效重复文件查找技术实战指南 【免费下载链接】dupeguru Find duplicate files 项目地址: https://gitcode.com/gh_mirrors/du/dupeguru 还在为磁盘空间被重复文件大量占用而烦恼吗&#xff1f;dupeGuru作为一款专业的跨平台重复文件查找工…

作者头像 李华
网站建设 2026/4/23 9:34:10

EmotiVoice在短视频配音领域的爆发式应用

EmotiVoice在短视频配音领域的爆发式应用 你有没有注意到&#xff0c;最近刷到的那些带货视频、情感短剧甚至搞笑段子&#xff0c;背后的“声音”越来越像真人了&#xff1f;不只是清晰可懂&#xff0c;而是带着情绪起伏——激动时语速加快&#xff0c;悲伤时低沉缓慢&#xff…

作者头像 李华
网站建设 2026/4/23 9:35:14

EmotiVoice语音惊讶感合成带来戏剧化效果

EmotiVoice语音惊讶感合成带来戏剧化效果 在一场虚拟偶像的直播中&#xff0c;观众突然看到角色睁大双眼、声音陡然拔高&#xff1a;“这……这怎么可能&#xff01;”——那一瞬间&#xff0c;不仅是剧情的转折&#xff0c;更是情感的真实爆发。这种极具张力的“惊讶”表达&a…

作者头像 李华