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

输入格式:

输入数据包括城镇数目正整数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

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+5;
const int inf = 0x3f3f3f3f;int n, m;
int ans;
int pre[N];struct node
{int u, v, w;
}g[N];
bool cmp(node a, node b)
{return a.w<b.w;
}
void init()
{for(int i=1; i<=n; i++) pre[i]=i;
}
int Find(int x)
{if(x!=pre[x]) pre[x]=Find(pre[x]);return pre[x];
}
bool Merge(int x, int y)
{int xx=Find(x);int yy=Find(y);if(xx!=yy){pre[xx]=yy;return 0;}return 1;
}
void Kruskal()
{int tot=0;for(int i=1; i<=m; i++){if(tot==n-1) break;if(!Merge(g[i].u, g[i].v)){ans+=g[i].w;tot++;}}if(tot==n-1) cout << ans << endl;else cout << -1 << endl;
}
int main()
{cin >> n >> m;init();for(int i=1; i<=m; i++)cin >> g[i].u >> g[i].v >> g[i].w;sort(g+1, g+1+m, cmp);Kruskal();return 0;
}

数据结构与算法实验6——图论 7-10 公路村村通相关推荐

  1. 21级数据结构与算法实验6——图论

    7-1 邻接矩阵表示法创建无向图 分数 20 全屏浏览题目 切换布局 作者 王东 单位 贵州师范学院 采用邻接矩阵表示法创建无向图G ,依次输出各顶点的度. 输入格式: 输入第一行中给出2个整数i(0 ...

  2. 数据结构与算法实验6——图论 7-9 哥尼斯堡的“七桥问题”

    哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示. 可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707-1783)最终解决 ...

  3. 数据结构与算法实验题 4.2 Who is the strongest

    数据结构与算法实验题 4.2 Who is the strongest ★实验任务 在神奇的魔法世界,召唤师召唤了一群的魁偶.这些魁偶排成一排,每个魁偶都有一个 战斗值.现在该召唤师有一个技能,该技能 ...

  4. 数据结构与算法实验题 6.1 鼹鼠掘土挑战赛

    数据结构与算法实验题 6..1 鼹鼠掘土挑战赛 ★实验任务 在潘多拉星的哈利路亚山上,生活着许多鼹鼠矿工,它们同属于潘多拉矿业公司哈利路 亚分公司.尽管在潘多拉星最美丽壮阔的地方工作,是一件十分让普通 ...

  5. c语言编写队列元素逆置,数据结构与算法实验—利用栈逆置队列元素.doc

    数据结构与算法实验-利用栈逆置队列元素 利用栈逆置队列元素实验报告 通信1204班 谢崇赟 实验名称 利用堆栈将队列中的元素逆置 实验目的 会定义顺序栈和链栈的结点类型. 掌握栈的插入和删除结点在操作 ...

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

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

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

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

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

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

  9. 数据结构与算法A实验六图论---7-4 公路村村通(最小生成树Prime和Kruskal算法)

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

最新文章

  1. php要用到哪些软件吗,php开发需要用什么程序
  2. tabs选项卡切换效果(jquery版)
  3. 第四节:格式化器如何序列化类型实例
  4. 探究Java常量本质及三种常量池(JVM)
  5. bzoj千题计划207:bzoj1879: [Sdoi2009]Bill的挑战
  6. 解决crontab 定时任务加载失败
  7. Ubuntu 10.04屏幕录像软件Xvidcap安装及详细配置
  8. Spring cloud Gateway(二) 一个Http请求的流程解析
  9. java和seo学那个_Java和PHP编程语言哪个比较厉害?
  10. h2 sync mysql_solo 从 h2 迁移到 mysql
  11. 纽约出租车计费问题:如何加载千万行级的大数据集
  12. 基于墨刀实现的原型系统:多啦阅读
  13. spring aop 和Transaction一起使用执行顺序问题
  14. OpenFileDiaog.Filter的使用
  15. python怎么变成动图_python 生成动图
  16. centos7里xxx.jar解压和压缩
  17. [渝粤教育] 西南科技大学 统计学原理 在线考试复习资料(3)
  18. java控制台如何输入一段代码
  19. PCL:demeanPointCloud ❤️ 去点云质心
  20. 区分Vlookup、hlookup、lookup函数

热门文章

  1. The provisioning profile is expiring soon
  2. 如何进行服务器备份操作系统,如何进行服务器备份操作系统
  3. 基于树莓派实现AS608指纹识别
  4. 怎么查看自己浏览器的User-Agent
  5. 创业需要宽广的心胸吗--leo看赢在中国第三季 6
  6. 诺基亚heif源码 cmake
  7. Python中的File(文件)操作
  8. Eureka注册中心配置登录验证
  9. Object-Oriented Programming Summary Ⅰ
  10. node 简介及安装