c++题目_【模板】最小生成树Prim

题目描述

这是一道最小生成树Prim的模板题,本题与【模板】最小生成树Kruskal,仅仅只有nn和mm的大小不同
给出一个无向图,求出最小生成树,如果该图不连通,则输出orz
 

输入

第一行输入2个正整数n,mn,m,代表这个无向图有nn个点,mm条边。(1≤n≤1e3,1≤m≤2e6)(1≤n≤1e3,1≤m≤2e6)

后面输入m行,每行有33个正整数 x,y,zx,y,z,代表第i条边所连接的2个点和这条边的权值,可能存在重边。(1≤x,y≤n,1≤z≤10000)(1≤x,y≤n,1≤z≤10000)

本题输入输出过多
c++请用scanf输入printf输出,或者加入 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);这段语句

输出

如果给的无向图是连通的,也就是能够求出一个最小生成树,请输出这个最小生成树的权值,否则请输出orz

样例输入1         复制
3 3
1 2 1
1 3 10
2 3 1

样例输出1         复制
2

提示

选择<1,2,1><2,3,1>这两条边此时可以生成一个最小生成树,此时权值也就是1+1=2

  1. 我首先定义了常量N来表示节点的最大数量,以及定义了变量nmvdisans,以及数组fn表示节点的数量,m表示边的数量,v表示节点之间的边权值,dis表示每个节点到最小生成树的最小距离,ans表示最小生成树的权值,f表示节点是否已经加入最小生成树。

  2. hs函数中,我首先通过输入获取了节点数量n和边的数量m。然后使用memset函数和循环,将二维数组v和一维数组dis初始化为正无穷,将数组f初始化为0。

  3. 接下来,我通过输入获取了每条边的起点、终点和权值,并将权值存入二维数组v中。

  4. 我将起始节点的最小距离初始化为0,并通过循环找到每个节点到最小生成树的最小距离,并将最小距离加入最小生成树的权值中。

  5. 最后,我输出了最小生成树的权值。

下面是带注释的代码

#include <bits/stdc++.h>
using namespace std;
//定义各个常量与变量 
const int N=1e3+1;
int n,m,v[N][N],dis[N],ans=0;
bool f[N];//真正的主函数 
void hs(){//  初始化 cin>>n>>m;memset(v,0x3f,sizeof(v));memset(dis,0x3f,sizeof(dis));memset(f,0,sizeof(f));for(int i=1;i<=m;i++){int p,q,x;cin>>p>>q>>x;if(x<v[p][q]){v[p][q]=x;v[q][p]=x;}}dis[1]=0;for(int i=1;i<=n;i++){int x=-1;for(int j=1;j<=n;j++)if(!f[j] && dis[j]<=10000 && ( x==-1||dis[j]<dis[x] ) )x=j;if(x==-1){//如果x等于-1,那么图不连通 cout<<"orz"<<"\n";//输出orz加换行 return ;//返回 }ans+=dis[x];f[x]=1;for(int j=1;j<=n;j++){if(!f[j])dis[j]=min(dis[j],v[x][j]);}}cout<<ans;//输出ans  return ;//返回 
}int main() {//主函数 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);//流加速 hs();//真正的主函数 return 0;//返回值 
}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据可视化pyecharts——数据分析(柱状图、折线图、饼图)

安装 首先确保已经安装了pyecharts库&#xff0c;如果没有&#xff0c;可以通过pip install pyecharts进行安装。 柱状图 从pyecharts.charts导入Bar&#xff0c;从pyecharts导入options。准备数据&#xff08;如类别数据x_data和对应的数值数据y_data&#xff09;。创建Bar对…

解决win11 使用wsl工具,不能使用systemctl

使用systemctl命令出现报错&#xff1a; System has not been booted with systemd as init system (PID 1). Can‘t operate. 默认情况下并不启用 systemd&#xff0c;而是使用了其他轻量级的初始化系统&#xff08;SysV init初始化系统&#xff09;。这导致一些需要 system…

力扣最热一百题——螺旋矩阵

目录 题目链接&#xff1a;54. 螺旋矩阵 - 力扣&#xff08;LeetCode&#xff09; 题目描述 示例 提示&#xff1a; 解法一&#xff1a;模拟 1. 边界初始化 2. 循环遍历矩阵 3. 从左到右遍历上边界 4. 从上到下遍历右边界 5. 从右到左遍历下边界 6. 从下到上遍历左边…

【GPU版】Windows下PyTorch入门深度学习环境安装与配置

如果电脑有NVIDIA GPU显卡&#xff0c;看【GPU版本】&#xff1b;否则&#xff0c;看【CPU版本】 聊聊PyTorch和Tensorflow 它们都是python的库/包 pip3是给python3使用的&#xff0c;由于现在用的python基本上都是3以上版本&#xff0c;所以pip和pip3没有区别 聊聊Anacond…

DNC Server 开发

每个工厂里面的机床系统类型各式各样,程序传输DNC 功能可以提高技术人员的工作效率,怎样兼容每种系统是个难题,如果是做工厂信息化的工程师也是比较头疼,下面给出一个解决方案,抛砖引玉 我们可以使用一种框架 满足插件式开发,主程序负责管理插件,具体的上传 下载 删除 查询等具…

第108集《大佛顶首楞严经》

请打开讲义241面。我们讲到嗅报&#xff0c;鼻根当中嗅的功能。 本根发相 发明二相&#xff1a;一者通闻&#xff0c;被诸恶气&#xff0c;熏极心扰。二者塞闻&#xff0c;气掩不通&#xff0c;闷绝于地。 以鼻根造业到无间地狱以后&#xff0c;他有二种受苦的相状&#xf…

Java数据结构——Set和Map

掌握 Map/Set 及实际实现类 HashMap/TreeMap/HashSet/TreeSet 的使用。掌握 TreeMap 和 TreeSet 背后的数据结构搜索树的原理和简单实现。掌握 HashMap 和 HashSet 背后的数据结构哈希表的原理和简单实现。 目录 1.搜索 1.1概念及场景 1.2模型 2. Map的使用 2.1关于Map的说…

【5G QoS】详解5G QoS端到端工作机制

博主未授权任何人或组织机构转载博主任何原创文章&#xff0c;感谢各位对原创的支持&#xff01; 博主链接 本人就职于国际知名终端厂商&#xff0c;负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作&#xff0c;目前牵头6G技术研究。 博客内容主要围绕…

同城找搭子小程序有哪些?找搭子社交软件测评笔记分享

寻找搭子不再迷茫&#xff01;今日测评几款热门找搭子小程序&#xff0c;为你开启全新社交体验。真实体验&#xff0c;深度剖析&#xff0c;帮你找到最适合的搭子平台&#xff0c;快来一探究竟。 1. 咕哇找搭子小程序&#xff1a;这是一个实名制的找搭子交友平台。正是由于实名…

力扣(leetcode)每日一题 2848 与车相交的点

2848. 与车相交的点 - 力扣&#xff08;LeetCode&#xff09; 题干 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i&#xff0c;nums[i] [starti, endi] &#xff0c;其中 starti 是第 i 辆车的起点&#xff0c;endi 是第 i 辆车的终…

四款好用英语翻译工具的全面指南

对于经常需要与工作或学习相关的英语资料打交道的人来说&#xff0c;翻译工具成为了我们日常的得力助手;现在市场上的英语翻译工具琳琅满目&#xff0c;各有千秋;今天&#xff0c;我就来为大家推荐几款我个人觉得非常实用的翻译工具: 第一款&#xff1a;福昕在线翻译 说到这一…

关于wp网站出现的问题

问题1 问题1&#xff1a;如果出现这个界面的问题 说明是根目录的index.php编码出了问题&#xff0c;用备份的源文件退换一下即可。 问题2 问题2&#xff1a;如果出现页面错位现象&#xff0c;可能是某个WP插件引起的问题&#xff0c;这里需要逐步排查插件&#xff0c;或者你刚…

【计算机网络 - 基础问题】每日 3 题(六)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

echo 命令:终端输出文本

一、echo 命令简介 ​echo​命令用于在终端上打印简单的文本消息、变量值或者将文本输出到文件中。 ‍ ​echo​ 命令在脚本编写、简单调试和显示信息时非常有用。可以用来输出状态信息、变量值或者作为其他命令的输入。 ‍ 相关命令&#xff1a;printf 命令比 echo 命令提…

数据可视化与分析:数据时代的关键工具

一、引言 数据可视化与分析是大数据时代中最为重要的技术之一。随着数据量的不断增加&#xff0c;如何有效地理解、解释和利用数据&#xff0c;已经成为各行各业面临的关键挑战。数据可视化通过图表、图形和互动界面将数据以直观的方式呈现&#xff0c;帮助用户快速识别数据中…

redis短信登录模型

基于Session实现登录 &#xff0c;

OpenGL Texture C++ Camera Filter滤镜

基于OpenGL Texture纹理的强大功能&#xff0c;在片段着色器&#xff08;Shader&#xff09;中编写GLSL代码&#xff0c;对YUV的数据进行数据转换从而实现视频编辑软件中的相机滤镜功能。 接上一篇OpenGL Texture C 预览Camera视频的功能实现&#xff0c;本篇来实现Camera滤镜效…

【数据结构】8——图3,十字链表,邻接多重表

数据结构8——图3&#xff0c;十字链表&#xff0c;邻接多重表 文章目录 数据结构8——图3&#xff0c;十字链表&#xff0c;邻接多重表前言一、十字链表结构例子 复杂例子 二、邻接多重表&#xff08;Adjacency Multilist&#xff09;例子 前言 除了之前的邻接矩阵和邻接表 …

Java抽象类和接口的学习了解

目录 1. 抽象类 1.1 抽象类概念 1.2例子 1.3 抽象类语法 1.被 abstract 修饰的类--抽象类 2.抽象类中被 abstract 修饰的方法--抽象方法&#xff0c;该方法不用给出具体的实现体 3.当一个类中含有抽象方法时&#xff0c;该类必须要abstract修饰 4.抽象类也是类&#xff…

PCIe进阶之TL:Address Spaces, Transaction Types, and Usage

1 Transaction Layer Overview 如上图为PCIe设备的一个分层结构,从上层逻辑看,事务层的关键点是: 流水线式的完整的 split-transaction 协议事务层数据包(TLP)的排序和处理基于信用的流控制机制可选支持的数据中毒功能和端到端数据完整性检测功能事务层包含以下内容: TLP…