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

【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[100];  
  8. int sum;  
  9.   
  10. int prim(int n)  
  11. {  
  12.     int i, j;  
  13.     int pos;  
  14.   
  15.     memset(vis, 0, sizeof(vis));  
  16.     for(i=1; i<=n; i++)  
  17.     {  
  18.         dis[i]=map[1][i];  
  19.     }  
  20.     vis[1]=1;  
  21.   
  22.     for(i=1;i<=n;i++)  
  23.     {  
  24.        int min=inf;  
  25.        for(j=1;j<=n;j++)  
  26.        {  
  27.            if(!vis[j] && dis[j]<min)  
  28.            {  
  29.                min=dis[j];  
  30.                pos=j;  
  31.            }  
  32.        }  
  33.        if(min>=inf)  break;  
  34.        sum+=min;  
  35.        vis[pos]=1;  
  36.        for(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;  
  49.     int i, j;  
  50.     int a, b, c;  
  51.     while(~scanf("%d%d", &n, &m))  
  52.     {  
  53.         sum=0;  
  54.         for(i=1;i<=n;i++)  
  55.         {  
  56.             for(j=1;j<=n;j++)  
  57.             {  
  58.                 map[i][j]=inf;  
  59.             }  
  60.             map[i][i]=0;  
  61.         }  
  62.         for(i=1;i<=m;i++)  
  63.         {  
  64.             scanf("%d%d%d", &a, &b, &c);  
  65.             if(map[a][b]>c)  
  66.                 map[a][b]=map[b][a]=c;  
  67.         }  
  68.         prim(n);  
  69.         printf("%d\n", sum);  
  70.     }  
  71.     return 0;  
  72. }   
  73.   
  74.   

 

数据结构--最小生成树详解 前言 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

DIY电磁炉核心驱动方案:IR2153PBF自振荡半桥芯片实战指南(附电路图)

本文详细介绍了IR2153PBF自振荡半桥驱动芯片在DIY电磁炉核心驱动方案中的实战应用。该芯片集成了振荡器与600V高压驱动能力,仅需少量外围元件即可生成互补带死区的PWM信号,极大简化了半桥逆变电路设计。文章深入解析了其工作原理、关键参数,并提供了完整的电路设计、PCB布局指南及调试步骤,帮助电子爱好者构建稳定高效的感应加热驱动核心。

beer8的博客 583

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

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

行码棋 512

[EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇

eIQ™机器学习(ML)软件开发环境支持在恩智浦EdgeVerse™微控制器和微处理器(包括i.MX RT跨界MCU和i.MX系列应用处理器)上使用ML算法。eIQ ML软件包括称为eIQ Toolkit的ML工作流工具以及推理引擎、神经网络编译器和优化库。............

HowieXue 薛永浩的博客 1万+

21天学会基于 Linux 的 NPU 固件开发--2.2 固件加载流程:request_firmware() 深度解析

本文深度解析Linux内核中NPU固件加载流程,重点剖析request_firmware()机制。内容涵盖:1)内核态与用户态的交互机制,包括同步/异步加载方式;2)NPU固件的特殊格式与加载逻辑;3)调试技巧与安全验证方案;4)提供最小化固件加载器实验。文章揭示了从文件系统到硬件初始化的完整链路,探讨了大模型时代面临的性能挑战与优化方案,如零拷贝加载技术,并提出了版本兼容性、断电恢复等关键问题的思考方向。

amy_mhd的博客 59

P1265 公路修建(Prim最小生成树)

原题链接:公路修建 - 洛谷 思路:其实就是最小生生成树。想想看,如果有2的情况,即三个点ABC,离A最近的点为B,离B最近的点为C,离C最近的点为A。那么把三条边设为a,b,c,即要满足a < c && b < a && c < b,这个式子是不可能成立的。除非这个图形是个正n边形,那么随便删去一条边,每条边的长度是一样的,所以其实就无所谓。因此就是一个求最小生成树的问题而已。 注意一个地方!最后求的是double,那么可以先把平方和求出来.

qq_52313416的博客 484

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 817

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

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

公子世无双的博客 441

2023年GESP12月认证C++五级真题解析

例如,如果a=4,那么4是最⼩的幸运数,而1不是,但我们可以连续对1做3次+1操作,使其变为4,所以我们可以说,1幸运化后的结果是 4。【题目大意】给一个完全平方数的标准,推导出哪些是超级幸运数,然后判断N个数字中,哪些是超级幸运数,是的输出“lucky”,不是的输出离该数字最近的比它大的数字。前一个数字,下标是j的数字是偶数,后面的数字下标是j+1的是奇数,按照要求,偶数在奇数的后面,要交换。A函数时间复杂度是O(n/2),B函数算法是O(sqrt(n)),大部分情况后者是优的,值更小。

lan_in的博客 1007

把雷达强度特征融合于 Cartographer的实现流程 :从地图构建到在线定位

摘要:本文提出在激光SLAM中融合强度特征的方法,解决几何匹配在退化环境中的失效问题。详细介绍了两种高反地图生成方式:离线使用assets_writer工具处理优化轨迹,在线实时累积高反点;以及权重网格的构建与预计算金字塔方法。定位阶段通过加权得分公式融合几何和强度信息,采用自适应缩放策略平衡特征依赖。该方案在不显著增加计算负担的前提下,有效提升了对称环境等退化场景的定位稳定性,对利用人工路标的移动机器人具有实用价值。

Studying…… 1328

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

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

s_tt9625的博客 306

用Python爬虫抓取大宗交易成交数据:全面解析与实战代码

大宗交易是指在证券市场中,涉及大额买卖的交易。此类交易通常由机构投资者进行,其交易量较大,对市场的影响显著。大宗交易数据包含了买卖双方的成交价格、成交量等关键信息,这些数据对于投资者和分析师而言,具有重要的市场预测意义。Python爬虫是一种自动化抓取互联网上数据的工具。通过爬虫,我们可以定期获取大宗交易数据,节省人工查询的时间。爬虫的工作原理通常包括:发送HTTP请求、获取响应数据、解析网页内容、提取关键信息、存储和展示数据。

2201_76125261的博客 417

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

生成EtherCAT从站XML图片信息方法

详细介绍了EtherCAT从站XML文件中图片元素的生成方法。

kevin1499的博客 2128

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

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

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

weixin_30412577的博客 108

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

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

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

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

上一篇: 完美网络
下一篇: CodeForces 545A
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值