news 2026/4/3 2:38:23

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/3/29 20:54:42

Ant Design设计工具集成实战:打破设计与开发壁垒的3步解决方案

Ant Design设计工具集成实战&#xff1a;打破设计与开发壁垒的3步解决方案 【免费下载链接】ant-design An enterprise-class UI design language and React UI library 项目地址: https://gitcode.com/gh_mirrors/ant/ant-design 你是否经历过这样的场景&#xff1f;设…

作者头像 李华
网站建设 2026/3/31 11:45:32

Textractor:打破语言壁垒的5大游戏文本实时提取技巧

Textractor&#xff1a;打破语言壁垒的5大游戏文本实时提取技巧 【免费下载链接】Textractor Textractor: 是一个开源的视频游戏文本钩子工具&#xff0c;用于从游戏中提取文本&#xff0c;特别适用于Windows操作系统。 项目地址: https://gitcode.com/gh_mirrors/te/Textrac…

作者头像 李华
网站建设 2026/3/28 11:09:29

48、网络故障排查与服务测试全攻略

网络故障排查与服务测试全攻略 在网络运维过程中,我们常常会遇到各种问题,如邮件服务器异常、网络连接故障、服务无法使用等。本文将详细介绍如何使用一些实用工具来排查网络问题和测试服务,帮助你快速定位并解决问题。 1. 邮件服务器问题解决 曾经遇到邮件服务器出现异常…

作者头像 李华
网站建设 2026/3/24 11:11:33

54、BIND 8与BIND 9配置选项详解

BIND 8与BIND 9配置选项详解 1. 部分重要选项概述 首先介绍一些重要选项: - sig−validity−interval :定义自动更新生成的数字签名的有效时间,默认值为30天。 - tkey−dhkey :标识服务器用于生成共享密钥的Diffie - Hellman密钥。 - tkey−domain :定义附加到共…

作者头像 李华
网站建设 2026/3/18 13:28:22

Python脚本打包成可执行文件完整指南:使用PyInstaller实现跨平台部署

目录 一、背景介绍 二、项目场景 三、准备工作 3.1 创建配置文件 3.2 创建依赖文件 四、代码修改 4.1 添加配置读取功能 4.2 完整代码示例 五、PyInstaller打包步骤 5.1 安装PyInstaller 5.2 打包命令 5.3 打包输出 5.4 运行可执行文件 六、跨平台打包注意事项 …

作者头像 李华
网站建设 2026/3/30 15:15:38

百度网盘秒传终极神器:网页版零配置极速体验

还在为百度网盘文件转存耗时过长而苦恼吗&#xff1f;这款革命性的网页版秒传工具将彻底颠覆你的网盘使用体验&#xff01;无需任何安装配置&#xff0c;打开浏览器即刻享受秒传的极速便捷&#xff0c;真正实现"点击即用"的极致体验。 【免费下载链接】baidupan-rapi…

作者头像 李华