news 2026/5/5 1:56:36

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/5/1 6:57:43

EmotiVoice在儿童教育机器人中的提问语气

EmotiVoice在儿童教育机器人中的提问语气 在一间充满童趣的教室里&#xff0c;一个圆头圆脑的教育机器人正俯身对孩子轻声问道&#xff1a;“你觉得星星为什么会发光呀&#xff1f;”它的声音温柔中带着一丝好奇&#xff0c;尾音微微上扬&#xff0c;像极了孩子最喜欢的那位幼…

作者头像 李华
网站建设 2026/5/1 17:29:44

41、Linux 服务器邮件过滤与安全防护指南

Linux 服务器邮件过滤与安全防护指南 1. Procmail 邮件过滤规则 Procmail 是一个强大的邮件过滤工具,以下是一些具体的过滤规则示例: 1.1 特定发件人和主题邮件处理 搜索来自名为 rdenn 且主题为 NT 的邮件,将邮件复制一份发送到 robert@bobsnet.org,另一份存储在 ntbo…

作者头像 李华
网站建设 2026/5/1 17:56:11

EmotiVoice是否提供语音合成历史版本API?向后兼容策略

EmotiVoice 是否支持历史版本 API&#xff1f;揭秘其向后兼容与版本管理实践 在当前 AI 驱动的语音交互浪潮中&#xff0c;文本转语音&#xff08;TTS&#xff09;已不再只是“把字念出来”的工具。从智能客服到虚拟主播&#xff0c;从有声读物到情感化教育机器人&#xff0c;用…

作者头像 李华
网站建设 2026/5/1 15:07:40

EmotiVoice与主流ASR系统联用的最佳实践案例分享

EmotiVoice与主流ASR系统联用的最佳实践案例分享 在智能语音助手越来越“像人”的今天&#xff0c;用户早已不满足于冷冰冰的“你说我听、我说你听”式交互。他们希望听到的回应是有温度的——当你低落时&#xff0c;它语气温柔&#xff1b;当你兴奋时&#xff0c;它的语气也能…

作者头像 李华
网站建设 2026/5/3 5:56:56

如何优化EmotiVoice输出效果?文本预处理技巧分享

如何优化EmotiVoice输出效果&#xff1f;文本预处理技巧分享 在虚拟主播直播中突然情绪断裂&#xff0c;游戏NPC本该愤怒的台词却被读得波澜不惊——这些尴尬时刻的背后&#xff0c;往往不是模型能力不足&#xff0c;而是输入文本这道“第一关”没守好。EmotiVoice作为当前少有…

作者头像 李华
网站建设 2026/5/3 9:49:06

OpenVoice V2完整教程:5步掌握多语言语音克隆终极指南

OpenVoice V2完整教程&#xff1a;5步掌握多语言语音克隆终极指南 【免费下载链接】OpenVoiceV2 项目地址: https://ai.gitcode.com/hf_mirrors/myshell-ai/OpenVoiceV2 OpenVoice V2是一款先进的即时语音克隆与文本转语音系统&#xff0c;支持中文、英文、西班牙语、法…

作者头像 李华