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

输入格式:

输入数据包括城镇数目正整数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
#include <bits/stdc++.h>
using namespace std;
int ls[1005][1005];
int main()
{int N, M, x, y, w, s = 0;cin >> N >> M;for (int i = 1; i <= N; i++) // 初始化矩阵每个点为无穷大for (int j = 1; j <= N; j++)ls[i][j] = 999999;int dist[1005] = {999999}; // dist[x] 表示x节点到已有生成树的最短距离for (int i = 0; i < M; i++){ // 生成邻接矩阵cin >> x >> y >> w;ls[x][y] = w;ls[y][x] = w;}for (int i = 1; i <= N; i++) // 记录每个点到1的最短距离dist[i] = ls[1][i];dist[1] = 0; // 访问过的点设为0while (1){ // Prim算法int v = 0;for (int i = 1; i <= N; i++)if (dist[i] < dist[v] && dist[i]) // 找出所有未访问过的节点到已有生成树的最短距离v = i;if (!v)break; // 如果没有可以能够连接的点则退出循环s += dist[v];dist[v] = 0;                 // 访问过的点设为0for (int i = 1; i <= N; i++) // 更新该节点的邻接节点到已有生成树的最短距离if (ls[v][i] < dist[i])dist[i] = ls[v][i];}bool flag = true;for (int i = 1; i <= N; i++) // 如果每个节点的dist值都为零,则生成树成功,否则表明有点不连通if (dist[i])flag = false;if (flag)cout << s << endl;elsecout << -1 << endl;return 0;
}

7-16 公路村村通相关推荐

  1. 08-图7 公路村村通

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

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

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

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

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

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

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

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

    7-10 公路村村通 (30 分) (写在前面:Kruskal算法不够完善,跪求大佬指点怎么修改,拜托拜托

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

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

  7. PTA 公路村村通

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

  8. 06-图6. 公路村村通(30)

    06-图6. 公路村村通(30) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的 ...

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

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

  10. PTA_21_08_图7 _公路村村通

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

最新文章

  1. git--分支管理策略
  2. java版数据结构解迷宫问题_C语言数据结构之迷宫问题
  3. 关于在Windows下AndroidStudio.使用React-Native开发android报错红屏“run react-native start”解决
  4. The value of a feed cannot be a tf.Tensor object.
  5. 如何高效管理BI报表的需求
  6. antlr 可以用java写吗_java – 我们可以用ANTLR定义一个非上下文语法吗?
  7. airpods固件更新方法_苹果发布 AirPods 新固件更新!
  8. rust程序设计语言第二版_C语言程序设计(山东联盟青岛大学版)
  9. leetcode 236. 二叉树的最近公共祖先LCA(后序遍历,回溯)
  10. python按行读取excel文件_python3读取excel文件只提取某些行某些列的值方法
  11. geotrellis使用(七)记录一次惨痛的bug调试经历以及求DEM坡度实践
  12. oracle-关于分组函数的小细节
  13. php 字符串方法名,PHP使用字符串名称调用类的方法是什么
  14. vivo手机刷鸿蒙教程,vivo手机怎么刷机_vivo手机刷机全教程
  15. cdrx4自动排版步骤_coreldraw x4怎么排版 coreldraw书册杂志的排版方法 - 电脑常识 - 服务器之家...
  16. 在CAD中修改标注箭头端样式需要怎么操作?
  17. 派生类中重新定义虚函数及虚函数的注意事项
  18. ctf比赛/学习资源整理,记得收藏!
  19. SDN入门第五篇——交换机与控制器之间的交互流程
  20. Git和Bitbucket入门之代码上传

热门文章

  1. C# TreeView
  2. 计算机探索策略的反馈调整,任务驱动模式下的中职计算机应用基础课程优化教学探索...
  3. python beautifulsoup4 table tr_使用python的BeautifulSoup解析“tbody/tr/td”
  4. 二元牛顿迭代法matlab,2-8牛顿迭代法matlab
  5. harmonic mean-调和平均数
  6. html5 360 重力 感应,H5案例分享:html5重力感应事件
  7. 谷歌彩蛋-让搜索结果页面下雪、旋转、倾斜
  8. ubuntu中微信突然打不开了
  9. 在html中设置margin属性,css中margin的4个属性
  10. 基于蜣螂优化的BP神经网络(分类应用) - 附代码