搜索与图论第七期 Prime算法

前言

prime算法也是一种图的结构 ,哎图的结构还有好多好多,大家慢慢学吧!!!

一、prime 算法的基本内容

过程:

最小生成树prim算法简单理解他的寻找路径的过程,从一个顶点V0开始,首先找到所有与V0相关联的顶点,查看这些顶点到V0的加权值,找出最小的一个,然后将该顶点纳入已统计顶点中。

寻找第三个顶点时,将V0、之前已算出的顶点与所有相关联且未统计的顶点,找出最小的一个,纳入已统计顶点中。

prim算法

是实现图的最小生成树。既然是图,就假设包含n个顶点,m条边。prim算法是从顶点出发的,其算法时间复杂度与顶点数目有关系。

从某个顶点开始,假设v0,此时v0属于最小生成树节点中的一个元素,该集合假设u,剩下的V-v0为待判定的点,此时选取u中的顶点到V-v0中顶点的一个路径最小的边,并且将其中非u中的顶点加入到u中,循环直到u中的顶点包含图所有的顶点为止。

最小生成树prim的优缺点:

优点:当边多且有重复边时,kruskal算法会超时。但是可以用prim算法去边,所以点多的时候用kruskal算法,边多的时候用prim算法,就可以去边了。缺点:使用kruskal算法会再有重复边的时候超时。

图示:

二、例题

1:Prime算法求最小生成树

2.AC代码:

#include <bits/stdc++.h>using namespace std;const int N = 510, M = 100010, INF = 0x3f3f3f3f;int n, m;
int g[N][N], dist[N];
bool st[N];int prim()
{memset(dist, INF, sizeof dist);dist[1] = 0;int res = 0;for(int i = 0; i < n; i++){int t = -1;for(int j = 1; j <= n; j++)if(!st[j] && (t == -1 || dist[t] > dist[j]))t = j;if(dist[t] == INF)return INF;st[t] = true;res += dist[t];for(int j = 1; j <= n; j++)dist[j] = min(dist[j], g[t][j]);}return res;
}int main()
{    cin >> n >> m;memset(g, INF, sizeof g);while(m--){int a, b, c;cin >> a >> b >> c;g[a][b] = g[b][a] = min(g[a][b], c);}int res = prim();if(res == INF)    cout << "impossible" << endl;elsecout << res << endl;return 0;
}

总结

总结来说图的内容很多很多,一步一步学吧,感谢大家的观看!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/643438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字节跳动 ByteHouse 云原生之路 – 计算存储分离与性能优化

01 起源 ByteHouse 的故事从字节跳动对于先进数据处理和分析的需求开始&#xff0c;这一需求随着公司业务规模的迅速扩张而日益增长&#xff0c;起源是对开源数据库管理系统 ClickHouse 的改造和增强。面对数据处理的高延迟、大规模数据操作的复杂性以及数据存储和处理成本的上…

【SGX系列教程】(一)Intel-SGX SDK在ubuntu22.04下安装全流程

文章目录 一.概述1.1 SGX三大组件1.2 SGXDataCenterAttestationPrimitives 二.安装流程2.1 检查服务器是否支持SGX2.2 sgx硬件/软件开启方法2.3 sgx dirver驱动安装&#xff1b;2.3.1 linux-sgx-driver驱动程序2.3.2 Intel SGX Support in the Linux Kernel&#xff08;linux内…

线程的同步和互斥学习笔记

目录 互斥锁的概念和使用 线程通信-互斥 互斥锁的创建和销毁 申请锁-pthread_mutex_lock 释放锁-pthread_mutex_unlock 读写锁的概念和使用 死锁的避免 互斥锁的概念和使用 线程通信-互斥 临界资源 一次只允许一个任务&#xff08;进程、线程&#xff09;访问的共享资…

电脑有网,浏览器连不上网,其他应用却能用

当我们访问浏览器的时候显示&#xff0c;你尚未链接&#xff0c;代理服务器可能有问题&#xff0c;或地址不正确的时候.可你的wifi任然是连接的&#xff0c;但是只有浏览器用不了&#xff0c;微信和其他程序都可以正常连接&#xff0c;这是为什么呢&#xff1f; 绝大多数是因为…

K8S的HPA

horiztal Pod Autoscaling&#xff1a;pod的水平自动伸缩&#xff0c;这是k8s自带的模块&#xff0c;它是根据Pod占用cpu比率到达一定的阀值&#xff0c;会触发伸缩机制 Replication controller 副本控制器&#xff1a;控制pod的副本数 Deployment controller 节点控制器&…

云原生网关哪家强:Sealos 网关血泪史

作者&#xff1a;Sealos 创始人&#xff0c;环界云计算 CEO 方海涛 Sealos 公有云 &#xff08;https://cloud.sealos.io&#xff09; 几乎打爆了市面上所有主流的开源网关&#xff0c;本文可以给大家很好的避坑&#xff0c;在网关选型方面做一些参考。 Sealos Cloud 的复杂场…

jenkins安装配置,使用Docker发布maven项目全过程记录(1)

使用的CentOS8 系统&#xff0c;其它Linux系统类似 1、jenkins安装 1.1、配置JAVA环境 使用的服务器环境中&#xff0c;安装了Java1.8与Java17&#xff0c;当前jenkins的最低java版本要求java11。系统默认使用的是java1.8&#xff0c;因此需要切换环境。 alternatives --co…

Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)

一、功能特点 支持各种本地视频文件和网络视频文件。支持各种网络视频流&#xff0c;网络摄像头&#xff0c;协议包括rtsp、rtmp、http。支持将本地摄像头设备推流&#xff0c;可指定分辨率和帧率等。支持将本地桌面推流&#xff0c;可指定屏幕区域和帧率等。自动启动流媒体服…

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…

Spring复习-问题回答

1.什么是 spring&#xff0c;你对 spring 的理解? Spring是一个轻量级&#xff0c;非侵入式的&#xff08;不使用框架特定的类&#xff0c;感受不到框架&#xff09;IOC和AOP一站式的java后端开发框架&#xff0c;简化企业开发。 2.spring 的优缺点 优点&#xff1a; Spr…

STL第二讲

第二讲 视频标准库源码版本&#xff1a;gnu c 2.9.1/4.9/Visual C OOP vs GP GP是将datas与methods分开&#xff0c;OOP相反&#xff1b; 为什么list不能使用全局的sort&#xff1f; 因为sort源代码&#xff1a; *(first (last - first)/2) // 此迭代器只能是随机访问迭代…

使用 Python 数据写入 Excel 工作表

在数据处理和报告生成等工作中&#xff0c;Excel 表格是一种常见且广泛使用的工具。然而&#xff0c;手动将大量数据输入到 Excel 表格中既费时又容易出错。为了提高效率并减少错误&#xff0c;使用 Python 编程语言来自动化数据写入 Excel 表格是一个明智的选择。Python 作为一…

【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

文章目录 一. 正向代理与反向代理的概念二. Nginx服务器的正向代理服务1. Nginx服务器正向代理服务的配置的3个指令1.1. resolver指令1.2. resolver_timeout指令1.3. proxy_pass指令 2. Nginx服务器正向代理服务的使用 三. Nginx服务器的反向代理服务1. 反向代理的基本指令1.1.…

docker使用笔记

最近在使用docker配置小米cyberdog2的环境&#xff0c;记录一下常用的命令&#xff0c;以备今后查阅。 0. 基本概念 Dockerfile&#xff1a;环境的配置信息&#xff0c;里面描述了你想要搭建的环境的信息。 Image(镜像)&#xff1a;类比我们装虚拟机/操作系统时需要的系统镜像…

git本地分支的合并/切换分支时遇到的问题

目录 第一章、本地分支的切换测试1.1&#xff09;切换之前的master分支下文件内容1.2&#xff09;切换到develop分支后修改文件1.3&#xff09;切回master分支出现报错&#xff1a; 第二章、解决方式2.1&#xff09;方式1&#xff1a;commit提交修改2.2&#xff09;方式2&#…

设计模式—行为型模式之命令模式

设计模式—行为型模式之命令模式 命令&#xff08;Command&#xff09;模式&#xff1a;将一个请求封装为一个对象&#xff0c;使发出请求的责任和执行请求的责任分割开。这样两者之间通过命令对象进行沟通&#xff0c;这样方便将命令对象进行储存、传递、调用、增加与管理。 …

告别无法访问的Github

告别无法访问的Github 最近在使用github的时候又登不上去了&#xff0c;挂着VPN都没用 但是自己很多项目都存在github&#xff0c;登不上去那不得损失很大 所以一行必须整点儿特殊手段来访问&#xff0c;顺便分享一下 1.加速器 网上很多解决方案都是在分享各种加速器来登陆…

有效的括号[简单]

>优质博文&#xff1a;IT-BLOG-CN 一、题目 给定一个只包括 ‘(’&#xff0c;‘)’&#xff0c;‘{’&#xff0c;‘}’&#xff0c;‘[’&#xff0c;‘]’ 的字符串s&#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 【1】左括号必须用相同类型的右括号…

春招冲刺第二天——SQL学习

春招冲刺第二天 前言 MySQL学习&#xff1a;哔哩哔哩参考视频&#xff1a; 【中字】SQL进阶教程 | 史上最易懂SQL教程&#xff01;10小时零基础成长SQL大师 第一章 Mysql安装 视频前三节有教程&#xff0c;或自行查阅&#xff0c;不做赘述 课程资料和数据库数据的网盘&…

第八篇 交叉编译华为云Iot SDK到Orangepi3B

本篇主要内容&#xff1a; 一、交叉编译华为云Iot SDK依赖1.宿主机安装交叉编译工具链&#xff08;1&#xff09;选择下载交叉编译工具链&#xff08;2&#xff09;解压、添加环境变量、重启2.交叉编译依赖库&#xff08;0&#xff09; 准备工作&#xff08;1&#xff09; 交叉…