当前位置: 首页 > article >正文

[图论]Kruskal

Kruskal

  • 本质:贪心,对边进行操作
  • 存储结构:边集数组。
  • 适用对象:可为负权图,可求最大生成树。
  • 核心思想:最短的边一定在最小生成树(MST)上,对最短的边进行贪心。
  • 算法流程:对全体边集 { E } \set{E} {E}由小到大排序。遍历所有边,每次添加使已选边集不成环的边,直到已选 V − 1 V-1 V1条边。可使用并查集判环,每次加边前先判断两点是否同属一个集合,每次加边时将两点合并到一个集合。
  • 复杂度: O ( E log ⁡ 2 E ) O(E\log_2E) O(Elog2E)

注:若无特殊说明,本文顶点与边编号均从0开始。

数据结构定义

using ll=long long;
ll n,m,s;//点数,边数,源点
struct edge{int u,v,w;
}e[m];
bool cmp(edge a,edge b){return a.w<b.w;
}
int s[n];
int Find(int x){if(s[x]!=x) s[x]=Find(s[x]);return s[x];
}
void init(){for(int i=0;i<n;i++) s[i]=i;
}

实现

int kruskal(){sort(e,e+m,cmp);init();int ans=0,cnt=0;for(int i=0;i<m;i++){if(cnt==n-1) break;int U=e[i].u,V=e[i].v,W=e[i].w;int u1=Find(U),u2=Find(V);if(u1==u2) continue;//成环,不选当前边else{ans+=W;s[u1]=u2;//合并到一个集合cnt++;}}if(cnt==n-1) return ans;return -1;
}

若求最大生成树,改为对边集 { E } \set{E} {E}由大到小排序即可。

相关文章:

[图论]Kruskal

Kruskal 本质&#xff1a;贪心&#xff0c;对边进行操作。存储结构&#xff1a;边集数组。适用对象&#xff1a;可为负权图&#xff0c;可求最大生成树。核心思想&#xff1a;最短的边一定在最小生成树(MST)上&#xff0c;对最短的边进行贪心。算法流程&#xff1a;对全体边集…...

UML-饮料自助销售系统(无法找零)序列图

一、题目&#xff1a; 在饮料自动销售系统中&#xff0c;顾客选择想要的饮料。系统提示需要投入的金额&#xff0c;顾客从机器的前端钱币口投入钱币&#xff0c;钱币到达钱币记录仪&#xff0c;记录仪更新自己的选择。正常时记录仪通知分配器分发饮料到机器前端&#xff0c;但可…...

Nginx Http配置整理

一、nginx 配置参数&#xff1a; server {#SSL 默认访问端口号为 443listen 443 ssl;#请填写绑定证书的域名server_name cloud.tencent.com; #请填写证书文件的相对路径或绝对路径ssl_certificate cloud.tencent.com_bundle.crt; #请填写私钥文件的相对路径或绝对路径ssl_cer…...

爬虫利器SpiderTools谷歌插件教程v1.0.0!!!web端JavaScript环境检测!!!

SpiderTools谷歌插件教程v1.0.0 一、SpiderTools简介二、下载通道三、插件介绍四、插件使用五、工具函数使用 一、SpiderTools简介 SpiderTools主要用于检测和监控网页的JavaScript运行环境。该插件可以帮助开发者更好地查看网页运行环境&#xff0c;特别是在处理复杂的前端环…...

计算机视觉算法实战——基于YOLOv8的农田智能虫情测报灯害虫种类识别系统开发指南

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​ ​​​​​​​​​ ​​ 一、智能虫情监测领域概述 1.1 农业虫害防治现状 全球每年因虫害造成的粮食损失达20%-40%&#xff0c;我…...

14-算法打卡-哈希表-基本概念-第十四天

1 基本概念 1.1 哈希表 百度百科解释&#xff1a; 散列表&#xff08;Hash table&#xff0c;也叫哈希表&#xff09;&#xff0c;是根据关键码值(Key value)而直接进行访问的数据结构。也就是说&#xff0c;它通过把关键码值映射到表中一个位置来访问记录&#xff0c;以加快…...

趣味编程之分布式系统:负载均衡的“雨露均沾“艺术

#此篇文章由Deepseek大力支持&#x1f60b; 凌晨三点&#xff0c;西二旗某火锅店后厨—— “羊肉卷走3号桌&#xff01;” “肥牛卷去7号&#xff01;” “虾滑优先给VIP区&#xff01;” 我蹲在传菜口的监控屏幕前&#xff0c;看着机器人服务生们忙而不乱地穿梭。突然间&am…...

第十六届蓝桥杯大赛软件赛省赛 C++ 大学 B 组 部分题解

赛时参加的是Python组&#xff0c;这是赛后写的题解&#xff0c;还有两题暂时还不会&#xff0c;待更新 题目链接题目列表 - 洛谷 | 计算机科学教育新生态 A 移动距离 答案&#xff1a;1576 C 可分解的正整数 Python3 import itertools from functools import cmp_to_ke…...

考研数据结构之顺序查找、折半查找与分块查找详解(包含真题及解析)

考研数据结构之顺序查找、折半查找与分块查找详解 一、顺序查找&#xff08;Sequential Search&#xff09; 1.1 基本思想 顺序查找是最基础的查找算法&#xff0c;通过遍历数据集合逐个比较目标值与当前元素&#xff0c;直到找到匹配项或遍历结束。其核心特点是&#xff1a…...

英文查重的时候参考文献显示重复是怎么回事?

像上图这样参考文献部分有颜色的情况&#xff0c;是属于参考文献没有排除干净的问题。 如何解决这样的问题&#xff1f; 首先第一步&#xff0c;先确认该报告是不是排除参考文献的版本&#xff1b; 第二步&#xff0c;如果是排除参考文献的版本&#xff0c;且参考文献仍然有…...

八股文---MySQl(3)

目录 12.事务的特性是什么&#xff1f;可以详细说一下吗&#xff1f; 回答 13并发事务带来哪些问题&#xff1f;怎么解决这些问题呢&#xff1f;MySQL的默认隔离级别是&#xff1f; 脏读&#xff1a;一个事务读到另外一个事务还没有提交的数据。 不可重复读&#xff1a;一个…...

基于labview的钢琴程序设计

部分程序如下 按照上图子vi更改输出频率即可 若需完整程序可以联系我...

国内网络设备厂商名单(List of Domestic Network Equipment Manufacturers)

国内网络设备厂商名单 运维工程师必须广泛熟悉国内外各大厂商的设备&#xff0c;深入掌握其应用场景、功能特点及优势。这不仅有助于在故障排查时迅速定位问题&#xff0c;还能在系统设计、优化与升级中做出更合理的决策。对设备特性的精准把握&#xff0c;能够显著提升运维效…...

基于CNN+ViT的蔬果图像分类实验

本文只是做一个简单融合的实验&#xff0c;没有任何新颖&#xff0c;大家看看就行了。 1.数据集 本文所采用的数据集为Fruit-360 果蔬图像数据集&#xff0c;该数据集由 Horea Mureșan 等人整理并发布于 GitHub&#xff08;项目地址&#xff1a;Horea94/Fruit-Images-Datase…...

高级语言调用C接口(五)结构体(3)-arkts

上一篇文章提到了&#xff0c;arkts和C接口之前还有一个Napi层&#xff0c;这层代码最大的优势就是C/C编码&#xff0c;这样&#xff0c;我们只需要把数据通过Json格式传递到Napi层&#xff0c;Napi层再定义一个结构体并赋值即可。arkts层是TypeScript代码&#xff0c;想定义成…...

【虚幻C++笔记】接口

目录 概述创建接口 概述 简单的说&#xff0c;接口提供一组公共的方法&#xff0c;不同的对象中继承这些方法后可以有不同的具体实现。任何使用接口的类都必须实现这些接口。实现解耦解决多继承的问题 创建接口 // Fill out your copyright notice in the Description page o…...

【MCP】第一篇:MCP协议深度解析——大模型时代的“神经连接层“架构揭秘

【MCP】第一篇&#xff1a;MCP协议深度解析——大模型时代的"神经连接层"架构揭秘 一、什么是MCP&#xff1f;二、为什么需要MCP&#xff1f;三、MCP的架构四、MCP与AI交互的原理4.1 ReAct&#xff08;Reasoning Acting&#xff09;模式4.2 Function Calling 模式 五…...

实时模式下 libaom 与 x264 编码对比实验

前沿 理论基础&#xff1a;在相同视频质量下&#xff0c;AV1的压缩率比H.264高约30%-50%。实时模式&#xff1a;视频编码中的实时模式&#xff0c;其核心目标是平衡编码效率与延迟要求&#xff0c;尤其在视频会议、直播、实时通信等场景中至关重要。 低延迟要求&#xff1a;编…...

学习海康VisionMaster之矩形检测

这几天太忙了&#xff0c;好几天没有学习了&#xff0c;今天终于空下来了&#xff0c;继续学习之路吧。 一&#xff1a;进一步学习了 今天学习下VisionMaster中的矩形检测&#xff0c;这个一开始我以为是形态学方面的检测&#xff0c;实际操作下来其实还是边缘直线的衍生应用&…...

解决前端vue项目在linux上,npm install,node-sass 安装失败的问题

Unable to save binary /var/lib/jenkins/workspace/xxx/node_modules/node-sass/vendor/linux-x64-72 : Error: EACCES: permission denied, mkdir ‘/var/lib/jenkins/workspace/x/node_modules/node-sass/vendor’ 这个是node-sass安装失败导致的。 #将npm的默认仓库更改为…...

C Primer Plus 第6版 编程练习——第3章

1、通过试验&#xff08;即编写带有此类问题的程序&#xff09;观察系统如何处理整数上道、浮占数上溢和浮点数下溢的 int main(int argc, char** argv) {int intMax 2147483647;float floatMax 3.402823466e38f;float floatMin -3.402823466e38f;printf("intMax:%d, …...

十倍开发效率 - IDEA插件之 Mybatis Log Free

提高效率不是为了完成更多任务&#xff0c;而是为了有充足的时间摸鱼 快速体验 MyBatis Log Free 支持打印执行的 SQL&#xff08;完整的SQL&#xff0c;没有占位符的&#xff09;。 没有使用 MyBatis Log Free 的开启日志打印是这样的&#xff1a; 用了 MyBatis Log Free 后…...

手动安装 VMware Tools 并设置虚拟机共享 Windows 文件夹

前言&#xff1a;在当今数字化的工作环境中&#xff0c;虚拟机技术为我们提供了强大的灵活性和便利性。VMware 作为虚拟化领域的佼佼者&#xff0c;其虚拟机软件被广泛应用于开发、测试和日常工作中。然而&#xff0c;许多用户在使用 VMware 虚拟机时&#xff0c;会遇到一个常见…...

(免费)flask调用讯飞星火AI,实现websocket

本文章可借鉴学习&#xff0c;不可直接盗用 接入ai要获取ID&#xff0c;Secret&#xff0c;Key&#xff0c;和接口地址&#xff0c;由于我们服务接口类型是websocket&#xff0c;所以要获取相应的接口地址。&#xff08;千万不要复制粘贴到http的了&#xff09; 还要获取doma…...

ARINC818协议-持续

一、帧头帧尾 SOF 和 EOF 分别代表视频帧传输的开始与结束&#xff0c;它们在封装过程有多种状态&#xff0c;SOF 分为 SOFi 和 SOFn&#xff0c;EOF 分为 EOFt 和 EOFn。传输系统中的视频信息包括像素数据信 息和辅助数据信息&#xff0c;分别存储在有效数据中的对象 0 和对象…...

分布式笔记(一)

分布式系统问题 并发性 没有全局时钟 故障独立性 分布式系统概念 分布式优势 资源共享、开放性、并发性、可扩展性、容错性 问题挑战 分布式系统总部特性很难了解 分布式系统响应不可预知 不能自顶向下 设计原则 透明性 开放性&#xff1a;按照普遍标准 可扩展性…...

linux常用基础命令_最新版

echo off setlocal enabledelayedexpansion :: Copyright © 2025 xianwen.deng :: All rights reserved. :: 591278546qq.com :: Version: 1.0 for /f “tokens2 delims:” %%a in (‘chcp’) do set “codepage%%a” set codepage!codepage: ! echo Codepage: !codepag…...

2021-11-09 C++三位数平方含有该数

缘由求解&#xff0c;运算函数&#xff0c;哪位大神教一下-编程语言-CSDN问答 void 三位数平方含有该数() {//缘由https://ask.csdn.net/questions/7560152?spm1005.2025.3001.5141int a 100, aa 1000, f 0;while (a < aa){f a*a;while (f > a)if ((f - a) % aa)f …...

MATLAB 程序实现了一个层次化光网络的数据传输模拟系统

% 主程序 num_pods = 4; % Pod 数量 num_racks_per_pod = 4; % 每个 Pod 的 Rack 数量 num_nodes_per_rack = 4; % 每个 Rack 的 Node 数量 max_wavelength = 50; % 可用波长数(根据冲突图动态调整) num_packets = 1000; % 模拟的…...

解锁 MCP 协议:AI 与数据交互的新桥梁

在人工智能&#xff08;AI&#xff09;蓬勃发展的当下&#xff0c;大型语言模型&#xff08;LLM&#xff09;展现出了令人惊叹的生成与推理能力。然而&#xff0c;它们在数据访问方面却面临着严峻的 “数据孤岛” 挑战。传统模式下&#xff0c;每个数据源都需要专门的连接器&am…...