图结构练习——最小生成树

【C++】数据结构之最小生成树算法 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。 输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。 输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。 输入样例:输出样例:Prim算法 kruskal算法... 阅读详情

图结构练习——最小生成树

Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^

题目描述

 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。
 

输入

 输入包含多组数据,格式如下。
第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n <= 100, m <=1000)
剩下m行每行3个正整数a b c,代表城市a 和城市b之间可以修建一条公路,代价为c。
 

输出

 每组输出占一行,仅输出最小花费。

示例输入

3 2
1 2 1
1 3 1
1 0

示例输出

2
0

提示

 

来源

 赵利强

示例程序

  1. #include<stdio.h>  
  2. #include<string.h>  
  3. const int inf=0x3f3f3f3f;  
  4.   
  5. int map[110][110];  
  6. int dis[110];  
  7. int vis[110];  
  8. int sum;  
  9.   
  10. int prim(int n)  
  11. {  
  12.     int i, j;  
  13.     int pos;  
  14.     memset(vis,0,sizeof(vis));  
  15.     for(int i=1;i<=n;i++)  
  16.     {  
  17.         dis[i]=map[1][i];  
  18.     }  
  19.     vis[1]=1;  
  20.   
  21.     for(int i=1;i<=n;i++)  
  22.     {  
  23.         int min=inf;  
  24.         for(int j=1;j<=n;j++)  
  25.         {  
  26.             if(!vis[j] && dis[j]<min)  
  27.             {  
  28.                 min=dis[j];  
  29.                 pos=j;  
  30.             }  
  31.         }  
  32.         if(min>=inf)  
  33.             break;  
  34.         sum+=min;  
  35.         vis[pos]=1;  
  36.         for(int j=2;j<=n;j++)  
  37.         {  
  38.             if(!vis[j] && map[pos][j]<dis[j])  
  39.             {  
  40.                 dis[j]=map[pos][j];  
  41.             }  
  42.         }  
  43.     }  
  44. }  
  45.   
  46. int main()  
  47. {  
  48.     int n, m, a, b, c;  
  49.     while(~scanf("%d%d", &n, &m))  
  50.     {  
  51.         sum=0;  
  52.         for(int i=1;i<=n;i++)  
  53.         {  
  54.             for(int j=1;j<=n;j++)  
  55.             {  
  56.                 map[i][j]=inf;  
  57.             }  
  58.             map[i][i]=0;  
  59.         }  
  60.         for(int i=1;i<=m;i++)  
  61.         {  
  62.             scanf("%d%d%d", &a, &b, &c);  
  63.             if(map[a][b]>c)  
  64.                 map[a][b]=map[b][a]=c;  
  65.         }  
  66.         prim(n);  
  67.         printf("%d\n", sum);  
  68.     }  
  69.     return 0;  
  70. }  
  71.   

 

数据结构--最小生成树详解 前言 A wise man changes his mind,a fool never. Name:Willam Time:2017/3/11、什么是最小生成树现在假设有一个很实际的问题:我们要在n个城市中建立一个通信网络,则连通这n个城市需要布置n-1一条通信线路,这个时候我们需要考虑如何在成本最低的情况下建立这个通信网? 于是我们就可以引入连通图来解决我们遇到的问题,n个城市就是图上的n 阅读详情

相关推荐

使用“最小生成树”算法解决村庄修路问题

若干村庄由若干条路链接,每条路需要一定的费用进行维护。为了使得维护的总费用最小,现在决定去掉一些道路,但要求各村庄之间仍然保持联通。使用“最小生成树”算法,设计一个程序使得村庄之间的总维护费用最小。

SDUT ACM 2144 最小生成树,克鲁斯卡尔模板

图结构练习——最小生成树 Time Limit: 1000MS Memory limit: 65536K 题目描述 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。 输入 输入包含多组数据,格式如下。 第一行...

weixin_30894583的博客 436

PSOC Creator 入门教程超详细

最近工作原因需要使用到赛普拉斯的一款芯片,奈何以前没有用过,所以趁这次也学习了一些简单的用法,总结一下,希望能帮到有需要朋友,因为网上关于这方面的文章少的可怜,详细点的更是少之又少!废话少说,正文开始.

qm_mq的博客 5746

P2872 [USACO07DEC]Building Roads S(最小生成树)

原题链接 本题是最小生成树的相关题目,初始情况存在几条边,剩下的边需要自己选。 思路: 首先需要把所有点之间的距离求出来存到边的数组中,然后对边按权值从小到大进行排序,对已经存在的边重新再加入到边的数组中,把存在的边的权值设为0,那么之后首先就会选到权值为0的边,然后就按kruskal的模板代码写就行了。 注意: 1.精度问题 求边之间的距离时,sqrt()里面的参数应该是double型的,如果是int型,就会出现精度问题,需要对求出的数据进行强制转换 2.并查集初始化 #include<bi

行码棋 512

实战指南:如何用DCCRN模型提升语音增强效果(附代码示例)

本文提供了基于DCCRN模型进行语音增强的实战指南。通过深入解析复数网络如何协同处理语音的幅度与相位信息,并附有完整的PyTorch代码实现,帮助开发者从数据准备、模型搭建到训练调优,构建高效的实时语音增强系统,有效提升嘈杂环境下的语音清晰度。

weixin_29054245的博客 478

Pixhawk固定翼飞行控制实战:L1与TECS算法详解(附代码解析)

本文深入解析了Pixhawk飞控在固定翼无人机中的核心控制算法:L1导航与TECS总能量控制。通过剖析算法原理、代码实现与实战调参,帮助开发者解决航线跟踪振荡、高度速度不稳定等常见问题,实现精准稳定的自主飞行。

wine的专栏 744

C/C++数据结构——道路建设(最小生成树Prim)

随着如今社会的不断变化,交通问题也变得越来越重要,所以市长决定建设一些公路来方便各个城市之间的贸易和交易。如果可以的话,输出Yes,否则输出No(两个城市不一定要直接的公路相连,间接公路到达也可以。接下来的n行给出建立公路的成本信息,每行给出三个整数,分别是相连的两个城市v1、v2(0......

weixin_44546342的博客 1799

2-1 AUTOSAR ASW概述

应用软件层(Application Software Layer,ASW)位于AUTOSAR整个架构的顶层。它由各种AUTOSAR Software Component(SW-C)组成,每个SW-C封装了各种应用的功能集。每个SW-C只能运行在一个ECU中。ASW层的设计目标是实现功能的可重用性和可配置性。它通过封装底层提供的服务,为上层应用层提供统一的接口。ASW层的开发可以基于AUTOSAR提供的标准化软件组件,也可以根据具体需求进行定制开发。

qq_42357877的博客 1903

SDUT OJ 2144 图结构练习——最小生成树

图结构练习——最小生成树 Time Limit: 1000MS Memory limit: 65536K 题目描述  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。   输入  输入包含多组数据,格式如下。 第

公子世无双的博客 441

Agent 智能体学习指南:从入门到求职的完整路线

AI Agent 不是更长的 prompt,而是一类系统设计——模型在受控环境里观察状态、选择动作、调用工具、接收反馈。本文系统梳理 Agent 的 5 个核心概念、7 个关键模块(Goal/State/Context/Tools/Loop/Guardrails/Eval)、三条学习路线(工程落地/研究算法/求职作品)、框架选型策略(LangGraph/OpenAI Agents SDK/Pydantic AI 等场景推荐),以及可执行的 7 天最小项目计划(从概念到简历 bullet)。

program哲学 229

DAMMFND: Domain-Aware Multimodal Multi-view Fake News Detection

虚假新闻的泛滥不仅严重阻碍了互联网社交媒体的健康发展,还在政治、经济和社会层面造成了实际危害,凸显了自动化虚假新闻检测的重要性(Zhou 等,2015;Cui 等,2019;Zhu 等,2022a;Li 等,2024c,b,a)。现有的虚假新闻检测方法通常聚焦于特定领域的新闻,例如健康或政治领域。然而,在现实世界中,社交媒体上的新闻往往跨越多个领域,这就要求现有的虚假新闻检测方法必须考虑多域泛化(Nan 等,2021;Qi 等,2019;Zhu 等,2022b)。

qq_52053775的博客 337

图结构练习——最小生成树--使用并查集算法

图结构练习——最小生成树 题目描述  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。   输入  输入包含多组数据,格式如下。 第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n 剩下m行每行3个正整数a b c,代表城市a

s_tt9625的博客 306

宽压 DC⇌DC 也能“随心所欲”——全桥 LLC 混合控制硬核拆解

硬件派 vs. 软件派:多电平是“器件堆砌”,混合控制是“算法魔改”。预算紧 → 先搞软件。仿真别嫌烦:PLECS 把两条曲线扫透,切换点、死区、φ 都调到波形平滑再上板。温升留 20 ℃ 余量:车规≥125 ℃,实验室测 105 ℃ 就算危险,别玩极限。

weixin_43199439的博客 928

SDUT 2144 图结构练习——最小生成树

题目链接 :http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2144 图结构练习——最小生成树 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  有n个城市,其中有些城市之间可以修

Autii's blog 671

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SDUT-2144 图结构练习——最小生成树

图结构练习——最小生成树 Time Limit:1000MSMemory Limit:65536KB SubmitStatisticDiscuss Problem Description 有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以...

weixin_30412577的博客 108

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[SDUT](2144)图结构练习——最小生成树 ---最小生成树(图)

图结构练习——最小生成树 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description  有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。   Inpu...

WangMeow --- ᶘ ᵒᴥᵒᶅ ฅ^•ﻌ•^ฅ 313

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: 学密码学一定得学程序
下一篇: 最小生成树(普里姆算法、克鲁斯卡尔算法)
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值