现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。

输入格式:
输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。

输出格式:
输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。

输入样例:

6 15
1 2 5
1 3 3
1 4 7
1 5 4
1 6 2
2 3 4
2 4 6
2 5 2
2 6 6
3 4 6
3 5 1
3 6 1
4 5 10
4 6 8
5 6 3

输出样例:

12

prim算法中的思想和Dijkstra算法很像。只是在最短距离那儿用了集合S来代替Dijkstra算法中的起点。
代码实现(c++):

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxv = 1010;
const int inf = 1000000;
int G[maxv][maxv];
int  d[maxv],n,m;//d表示顶点与集合S的最短距离
bool vis[maxv] = {false};
int prim()
{fill(d,d+maxv,inf);d[1] = 0;//城市是1-N,只有1号顶点到集合S的距离为0,其余全为infint s = 0;//存放最小生成树的权值之和for (int i=1;i<=n;i++) {int u=-1,min=inf;for (int j=1;j<=n;j++) {if (vis[j]==false&&d[j]<min){u=j;min=d[j];}}if(u==-1)return -1;vis[u]=true;//标记u已经被访问过s+= d[u];//将与集合S距离最小的边加入最小生成树for(int v=1;v<=n;v++) {if(vis[v]==false&&G[u][v]!=inf&&d[v]>G[u][v]) {d[v]=G[u][v];//u为中介可以使v离集合S更近}}}return s;
}
int main(){int u,v,w;cin>>n>>m;fill(G[0],G[0]+maxv*maxv,inf);for(int i=0;i<m;i++){cin>>u>>v>>w;G[u][v]=w;G[v][u]=w;}int s=prim();cout<<s;return 0;
}

7-10 公路村村通 prim算法相关推荐

  1. C/C++数据结构——公路村村通(Prim)

    ​ 活动地址:CSDN21天学习挑战赛 学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩:迟一天就多一天平庸的困扰. 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路 ...

  2. 2-1 公路村村通 (25 分)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...

  3. 7-10 公路村村通 (最小生成树Prim算法) | PTA数据结构与算法——C语言实现

    公路村村通 非常直白的最小生成树问题. 原题链接:PTA | 程序设计类实验辅助教学平台 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通 ...

  4. 浙大数据结构:08-图7 公路村村通 (30 分)Prim与Kruskal算法

    08-图7 公路村村通 (30 分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N( ...

  5. 7-5 公路村村通 (30 分)(C语言实现)

    现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N) ...

  6. 08-图7 公路村村通(浙大数据结构)

    中国大学MOOC-陈越.何钦铭-数据结构-2022夏 08-图7 公路村村通 分数 30 作者 陈越 单位 浙江大学 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每 ...

  7. PTA 公路村村通 思路分析及代码解析

    PTA 公路村村通 一.前导 1. 需要掌握的知识 2. 题目信息 二.解题思路分析 1. 题意理解 1. 1 输入数据 1.2 输出数据 2. 思路分析(重点) 三.具体实现 1. 弯路和bug 2 ...

  8. PTA_21_08_图7 _公路村村通

    PTA_21_08_图7 _公路村村通 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式 输入数据包括城镇数目 ...

  9. 7-3 公路村村通 (30分)含解析

    7-3 公路村村通 (30分) 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本. 输入格式: 输入数据包括城镇数目正整数N(≤10 ...

最新文章

  1. GAITC 2020 演讲实录丨张立华:机器智能的发展现状
  2. torch.var()、样本方差、母体方差
  3. 过春节,坐汽车回家的朋友,注意了。。
  4. 从零开始徒手撸一个vue的toast弹窗组件
  5. 29岁仍在考编制,事业编和教师编都在备考,很多人都说过了年龄了,不适合再考,是吗?
  6. mysql decimal被四舍五入_MySQL之ROUND函数四舍五入的陷阱
  7. 入门不简单(《Beginning C# Objects中文版》书评)
  8. thinkphp 一个文件怎么调用另一个文件中的define()_ThinkPHP 简易开发思路 amp;amp; MVC和URL跳转...
  9. 16.2 调色板动画
  10. 29 - Excel 图表与数据分析
  11. 饥荒联机版服务器控制台本地和在线,饥荒联机版服务器代码有哪些_服务器常用指令一览_3DM单机...
  12. Unity笔记之动画遮罩
  13. 一键修改Windows密码批处理
  14. python B站UP主所有视频封面下载
  15. (后续更新)【微信小程序】毕业设计 租房小程序开发实战,零基础开发房屋租赁系统小程序
  16. ES6语法总结(21)--Generator函数的异步应用
  17. 音频交流会(个人学习向项目)
  18. Starrocks集群部署
  19. mmap MAP_PRIVATE MAP_SHARED
  20. The Dirichlet Distribution 狄利克雷分布

热门文章

  1. 【白板动画制作软件】万彩手影大师教程 | 调整整个动画时长
  2. lg相乘公式,lg指数函数运算法则,指数函数运算公式8个
  3. CV | 矩形度的计算(python)
  4. 如何关闭OPPO手机服务器维护,使用OPPO手机,一定要关闭这3个功能,不然你的手机会越来越卡...
  5. JS使用sort进行升序和降序排序
  6. JavaScript 数组升序降序 【超实用】
  7. linux下guide编译不了,全志R16编译环境搭建指南,全志R16_Tina SDK Quick Start Guide
  8. first name一般来说是指名字,surname or family name才是姓
  9. 西安工业云上线,工业云平台搭建有哪些真金白银?
  10. Java Elasticsearch创建索引