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

图论---朴素Prim(稠密图)

O( n ^2 )

  • 题目通常会提示数据范围

    • 若 V ≤ 500,两种方法均可(朴素Prim更稳)。

    • 若 V ≤ 1e5,必须用优先队列Prim + vector 存图。

// 最小生成树 —朴素Prim
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;const int N=510,INF=0x3f3f3f3f;
int n,m;
int g[N][N];
int dist[N]; //表示这个点到集合的距离
bool st[N];int prim()
{memset(dist,0x3f,sizeof dist);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;//举例集合最近的点的距离是INF,说明图不连通if(i && dist[t]==INF) return INF;//只要不是第一个点,就把新加进来的这条边加到答案里if(i) res+=dist[t];//用 t 来更新其它的点for(int j=1;j<=n;j++) dist[j]=min(dist[j],g[t][j]);st[t]=true;}return res;
}int main()
{cin>>n>>m;memset(g,0x3f,sizeof g);while(m--){int a,b,c;cin>>a>>b>>c;g[a][b]=g[b][a]=min(g[a][b],c);}int t=prim();if(t==INF) puts("impossible");else cout<<t<<endl;return 0;
}

http://www.xdnf.cn/news/1649.html

相关文章:

  • 如何在 Vue 3 中实现一个自定义的 `v-html` 组件
  • 蓝桥杯嵌入式系统设计:高效编程与调试方法全解析
  • 基于大模型的食管平滑肌瘤全周期预测与诊疗方案研究
  • 解释器模式:自定义语言解析与执行的设计模式
  • nodejs之Express-介绍、路由
  • 《逃离云端束缚,拥抱GPT本地部署》
  • 深度学习-数值稳定性和模型初始化
  • ZooKeeper配置优化秘籍:核心参数说明与性能优化
  • 实时数字人——DH_LIVE
  • 矩阵运算和线性代数操作开源库
  • Unreal Niagara制作SubUV贴图翻页动画
  • 实现营销投放全流程自动化 超级汇川推出信息流智能投放产品“AI智投“
  • DDD领域驱动与传统CRUD
  • 缓存集群技术深度解析:从原理到实战
  • 数据结构-排序
  • C#基于Sunnyui框架和MVC模式实现用户登录管理
  • PH热榜 | 2025-04-24
  • 【网络应用程序设计】实验四:物联网监控系统
  • 发币流程是什么,需要多少成本?
  • 深入详解人工智能数学基础——概率论中的KL散度在变分自编码器中的应用
  • 数据库安装和升级和双主配置
  • 深度解析:基于Python的微信小程序自动化操作实现
  • 优化uniappx页面性能,处理页面滑动卡顿问题
  • 时序数据库IoTDB构建的能源电力解决方案
  • JVM-类加载机制
  • 【docker】 pull FROM build
  • 3.1.3 materialDesign:DialogHost 使用介绍
  • Whisper微调及制作方言数据集
  • Golang 闭包学习
  • arm64适配系列文章-第三章-arm64环境上mariadb的部署