首页 > 试题广场 >

道路建设

[编程题]道路建设
  • 热度指数:668 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解

随着如今社会的不断变化,交通问题也变得越来越重要,所以市长决定建设一些公路来方便各个城市之间的贸易和交易。虽然市长的想法很好,但是他也遇到了一般人也经常头疼的问题,那就是手头的经费有限……在规划过程中,设计师们已经预算出部分城市之间建设公路的经费需求。现在市长想知道,它能不能将他的m个城市在有限的经费内实现公路交通。如果可以的话,输出Yes,否则输出No(两个城市不一定要直接的公路相连,间接公路到达也可以。)


输入描述:
测试输入包含多条测试数据
每个测试数据的第1行分别给出可用的经费c(<1000000),道路数目n(n<10000),以及城市数目m(<100)。
接下来的n行给出建立公路的成本信息,每行给出三个整数,分别是相连的两个城市v1、v2(0<v1,v2<=m)以及建设公路所需的成本h(h<100)。


输出描述:
对每个测试用例,输出Yes或No。
示例1

输入

20 10 5
1 2 6
1 3 3
1 4 4
1 5 5
2 3 7
2 4 7
2 5 8
3 4 6
3 5 9
4 5 2

输出

Yes
示例2

输入

10 2 2
1 2 5
1 2 15

输出

Yes

备注:
两个城市之间可能存在多条线路
头像 白给怪
发表于 2020-07-07 10:24:56
题目链接:https://ac.nowcoder.com/acm/problem/15108显然这是一道 最小生成树的题其中利用的是 kruskal算法kruskal 算法思想:贪心选取最短的边来组成一棵最小的生成树。具体做法:先将所有的边做排序,然后利用并查集作判断来优先选择较小的边,直 到建成一 展开全文
头像 在刷题的单身狗很开心
发表于 2023-11-11 22:40:46
//最小生成树模板题,用普利姆算法或克鲁斯卡尔算法求解。 #include <bits/stdc++.h> using namespace std; #define int long long const int&nb 展开全文
头像 zjnu_tjq
发表于 2020-07-04 18:16:07
链接:https://ac.nowcoder.com/acm/problem/15108 题目描述: 随着如今社会的不断变化,交通问题也变得越来越重要,所以市长决定建设一些公路来方便各个城市之间的贸易和交易。虽然市长的想法很好,但是他也遇到了一般人也经常头疼的问题,那就是手头的经费有限……在规划过程 展开全文
头像 威风镰鼬
发表于 2021-06-12 08:08:09
思路 最小生成树板子题,用Kruskal硬过就行了。算法流程:初始设点在集合A,无连边;将图中的边按照权值从小到大排序,然后从最小的边开始连接(使用并查集);将边的两端点加入集合B,如果当前边的两个端点不都在集合A,则进行连接;选择m-1条边的时候刚好将m个点连上,此时判断权值之和是否大于c。 代码 展开全文
头像 还没xiang好
发表于 2020-05-13 22:38:56
Java克鲁斯卡尔解决-道路建设(MST) import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { static class Edge { 展开全文
头像 已注销
发表于 2024-05-30 21:09:55
链接:https://ac.nowcoder.com/acm/problem/15108 来源:牛客网 题目描述 随着如今社会的不断变化,交通问题也变得越来越重要,所以市长决定建设一些公路来方便各个城市之间的贸易和交易。虽然市长的想法很好,但是他也遇到了一般人也经常头疼的问题,那就是手头 展开全文
头像 an_da
发表于 2021-05-17 17:11:17
题解(最小生成树) kruskal 博客链接:https://blog.csdn.net/qq_50285142/article/details/116995428 #include<bits/stdc++.h> using namespace std; typedef long lon 展开全文
头像 白给怪
发表于 2020-07-07 15:22:10
在上一篇文章中我们用 kruskal算法 解决了这个问题 在这篇题解中 我们将用 prim算法来解决这一问题首先我们写贴上从毛毛雨学姐那 贴来的 模板代码再贴上本题的AC代码: #include<iostream> #include<algorithm> #include&l 展开全文
头像 瑜画
发表于 2020-07-09 16:50:52
最小生成树裸题,注意同一个u到v可能有多个w,所以要取最小的那一条边。最后比较最小生成树的值与C的大小,判断是否能建设成道路,下面给出prim解法 #include <bits/stdc++.h> using namespace std; const int N=110; int g[N 展开全文
头像 cheeserish
发表于 2020-07-17 16:32:45
最小生成树问题;选n-1条边; #include<bits/stdc++.h> using namespace std; //因为给边了,所以用最小生成树 const int maxn=10100; int n,m,c,sum=0,f[maxn]; struct e{ int u 展开全文

问题信息

上传者:牛客303862号
难度:
0条回答 16浏览

热门推荐

通过挑战的用户

查看代码
道路建设