news 2026/2/11 10:39:31

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/2/6 23:16:00

智能检索系统进阶指南:解锁代理规划与深度推理双引擎实战

智能检索系统进阶指南&#xff1a;解锁代理规划与深度推理双引擎实战 【免费下载链接】azure-search-openai-demo A sample app for the Retrieval-Augmented Generation pattern running in Azure, using Azure AI Search for retrieval and Azure OpenAI large language mode…

作者头像 李华
网站建设 2026/2/8 19:09:50

大模型应用技术之 Spring AI 2.0 变更说明

概述 Spring AI 2.0.0-M1 是 Spring AI 框架的一个重要里程碑版本&#xff0c;在 Spring AI 1.x 的基础上进行了重大升级和改进。该版本基于 Spring Boot 4.0 和 Spring Framework 7.0 构建&#xff0c;提供了更强大的 AI 应用开发能力&#xff0c;增强了与各种 AI 模型和服务的…

作者头像 李华
网站建设 2026/2/10 9:24:17

EmotiVoice在语音贺卡App中的情感传递价值

EmotiVoice在语音贺卡App中的情感传递价值 在数字通信日益高效的今天&#xff0c;人与人之间的交流却似乎越来越“扁平化”——一条条冷冰冰的文字消息滑过屏幕&#xff0c;祝福变得模板化&#xff0c;情绪被压缩成几个表情符号。尤其是在节日、生日或重要纪念日&#xff0c;我…

作者头像 李华
网站建设 2026/2/4 7:26:29

46、Linux 系统内核管理与网络故障排查指南

Linux 系统内核管理与网络故障排查指南 1. 内核管理 在 Linux 系统中,有时需要对内核进行管理,例如切换到旧内核或添加新内核。 1.1 启动旧内核 若要启动旧内核,可重启系统,并在启动提示时输入“safe”标签。 1.2 使用 GRUB 配置多内核启动 如果系统使用 GRUB,可修改…

作者头像 李华
网站建设 2026/2/7 2:03:46

glTFast终极指南:Unity中快速加载3D模型的完整方案

glTFast终极指南&#xff1a;Unity中快速加载3D模型的完整方案 【免费下载链接】glTFast Efficient glTF 3D import / export package for Unity 项目地址: https://gitcode.com/gh_mirrors/gl/glTFast 在当今的Unity 3D开发中&#xff0c;高效的模型加载已成为项目成功…

作者头像 李华
网站建设 2026/2/11 6:21:28

PiKVM定制化构建指南:从零打造专属远程管理系统的完整实践

PiKVM定制化构建指南&#xff1a;从零打造专属远程管理系统的完整实践 【免费下载链接】pikvm Open and inexpensive DIY IP-KVM based on Raspberry Pi 项目地址: https://gitcode.com/gh_mirrors/pi/pikvm 你是否曾经遇到过这样的困境&#xff1a;在机房外需要重启服务…

作者头像 李华