洛谷 P1547 Out of Hay 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置。

题目链接:https://www.luogu.org/problem/show?pid=1547

题目背景

奶牛爱干草

题目描述

Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发。农场之间总共有M (1 <= M <= 10,000)条双向道路,所有道路的总长度不超过1,000,000,000。有些农场之间存在着多条道路,所有的农场之间都是连通的。

Bessie希望计算出该图中最小生成树中的最长边的长度。

输入输出格式

输入格式:

两个整数N和M。

接下来M行,每行三个用空格隔开的整数A_i, B_i和L_i,表示A_i和 B_i之间有一条道路长度为L_i。

输出格式:

一个整数,表示最小生成树中的最长边的长度。

输入输出样例

输入样例#1:

3 3
1 2 23
2 3 1000
1 3 43

输出样例#1:

43

分析:前面的东西还是套最小生成树的模板。在生成树的循环中,将ans改为记录当前的最长边。

AC代码:
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<algorithm>
 5
 6 using namespace std;
 7 const int MAXN = 2010;
 8 const int MAXM = 20010;
 9 int fa[MAXN];
10
11 struct edge
12 {
13     int f,t,v;
14 }e[MAXM];
15
16 struct edge tmp1,tmp2;
17 int cmp(edge tmp1,edge tmp2)
18 {
19     return tmp1.v < tmp2.v;
20 }
21
22 int find(int x)
23 {
24     if(x == fa[x])
25         return x;
26     return fa[x] = find(fa[x]);
27 }
28
29 bool Union(int x,int y)
30 {
31     x = find(x),y = find(y);
32     if(x != y)
33     {
34         fa[x] = y;
35         return 1;
36     }
37     return 0;
38 }
39
40 inline void read(int &x)
41 {
42     char ch = getchar();char c;x = 0;
43     while(ch > ‘9‘ || ch < ‘0‘)    c = ch,ch = getchar();
44     while(ch <= ‘9‘ && ch >= ‘0‘) x = x*10+ch-‘0‘,ch = getchar();
45 }
46
47 int main()
48 {
49     int m,n;
50     read(n),read(m);
51     for(int i = 1;i <= m;i ++)
52         read(e[i].f),read(e[i].t),read(e[i].v);
53     for(int i = 1;i <= n;i ++)
54         fa[i] = i;
55     sort(e+1,e+1+m,cmp);
56     int cnt = n,ans = 0;
57     for(int i = 1;i <= m &&cnt > 1;i ++)
58     {
59         if(Union(e[i].f,e[i].t))
60             ans = max(ans,e[i].v),cnt --;
61 //ans记录生成树中的最长边。这里一定要注意cnt,最小生成树一旦形成立刻退出
62     }
63     printf("%d\n",ans);
64     return 0;
65 }    
时间: 2024-10-20 04:38:31

洛谷 P1547 Out of Hay 题解的相关文章

洛谷P1547 Out of Hay 最小生成树 并查集

洛谷P1547 Out of Hay 最小生成树 并查集 路径压缩 #include <cstdio> #include <cmath> #include <cstdlib> #include <cstring> #include <string> #include <algorithm> #include <iostream> #include <iomanip> using namespace std ;

洛谷——P1547 Out of Hay

P1547 Out of Hay 题目背景 奶牛爱干草 题目描述 Bessie 计划调查N (2 <= N <= 2,000)个农场的干草情况,它从1号农场出发.农场之间总共有M (1 <= M <= 10,000)条双向道路,所有道路的总长度不超过1,000,000,000.有些农场之间存在着多条道路,所有的农场之间都是连通的. Bessie希望计算出该图中最小生成树中的最长边的长度. 输入输出格式 输入格式: 两个整数N和M. 接下来M行,每行三个用空格隔开的整数A_i, B_

洛谷 P2801 教主的魔法 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=2801 题目描述 教主最近学会了一种神奇的魔法,能够使人长高.于是他准备演示给XMYZ信息组每个英雄看.于是N个英雄们又一次聚集在了一起,这次他们排成了一列,被编号为1.2.…….N. 每个人的身高一开始都是不超过1000的正整数.教主的魔法每次可以把闭区间[L, R](1≤L≤R≤N)内的英雄的身高全部加上一个整数W.(虽然L=R时并不

洛谷 P1106 删数问题 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1106 题目描述 键盘输入一个高精度的正整数N,去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的N和k,寻找一种方案使得剩下的数字组成的新数最小. 输出应包括所去掉的数字的位置和组成的新的正整数.(N不超过250位) 输入数据均不需判错. 输入输出格式 输入格式: n (高精度的正整数) k (需要删除的数字

【基础练习】【背包DP】洛谷1164 小A点菜题解

洛谷的题目又有那令人···的悲剧格式= = 洛谷1164 小A点菜 本题地址:http://www.luogu.org/problem/show?pid=1164 题目背景 uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家--餐馆,很低端的那种. uim指着墙上的价目表(太低级了没有菜单),说:"随便点". 题目描述 不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元(M<=10000). 餐馆虽低端,但是菜品种类不少,有N种(N<=100),第i种

洛谷 P1022 计算器的改良 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1022 题目背景 NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能.实验室将这个任务交给了一个刚进入的新手ZL先生. 题目描述 为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例: 4+3x=8 6a-5+1=2-2a -5+12y=

洛谷3953:逛公园——题解

https://www.luogu.org/problemnew/show/P3953 策策同学特别喜欢逛公园.公园可以看成一张n个点m条边构成的有向图,且没有自环和重边.其中1号点是公园的入口,n号点是公园的出口,每条边有一个非负权值,代表策策经过这条边所要花的时间. 策策每天都会去逛公园,他总是从1号点进去,从n号点出来. 策策喜欢新鲜的事物,他不希望有两天逛公园的路线完全一样,同时策策还是一个特别热爱学习的好孩子,他不希望每天在逛公园这件事上花费太多的时间.如果1号点到n号点的最短路长为d

【日常学习】【搜索/排序+字符串】洛谷1012/1107 最大整数题解

转载请注明出处 [ametake版权全部]http://blog.csdn.net/ametake欢迎来看 洛谷1107 最大整数 本题地址:http://www.luogu.org/problem/show?pid=1107 题目描写叙述 设有n个正整数 (n<=20), 将它们连接成一排,  组成一个最大的多位整数. 比如: n=3时, 3个整数13, 312, 343连接成的最大整数为: 34331213 又如: n=4时, 4个整数7,13,4,246连接成的最大整数为: 7424613

【日常学习】【背包DP(完全背包)】洛谷1616 疯狂的采药题解

这是一道典型的完全背包题目 先上题目···于是又要迎来洛谷那令人不知道说什么的霸气摘要··· 洛谷1616 疯狂的采药 本题地址:http://www.luogu.org/problem/show?pid=1616 题目背景 此题为NOIP2005普及组第三题的疯狂版. 此题为纪念LiYuxiang而生. 题目描述 LiYuxiang是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师.为此,他想拜附近最有威望的医师为师.医师为了判断他的资质,给他出了一个难题.医师把他带到一个到处都是草药的山洞