博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P1547 Out of Hay (最小生成树)
阅读量:6002 次
发布时间:2019-06-20

本文共 1131 字,大约阅读时间需要 3 分钟。

嗯...

 

题目链接:

 

思路:

嗯...既然题中已经说了是最小生成树,那么是需要在最小生成树的模板上稍作修改即可。要求的是最小生成树中的最长边,注意:

一. 不是每一条边都可以做为最小生成树中的边。

二. 所要求的这条边是连接两个点的边的最大权值。

所以,我们就在“并”操作的时候稍作修改,用ans记录下它的最大权值即可。

 

AC代码:

1 #include
2 #include
3 #include
4 5 using namespace std; 6 7 int f[100005]; 8 int ans; 9 10 struct node{11 int x, y, l;12 } a[1000005];13 14 inline int cmp(node i, node j){15 return i.l < j.l;16 }17 18 inline int find(int x){19 if(f[x] != x)20 f[x] = find(f[x]);21 return f[x];22 }//"查" 23 24 int main(){25 int n, m;26 scanf("%d%d", &n, &m);27 for(int i = 1; i <= m; i++){28 scanf("%d%d%d", &a[i].x, &a[i].y, &a[i].l);29 }30 for(int i = 1; i <= n; i++)31 f[i] = i;32 sort(a+1, a+1+m, cmp);//按边权排序,"最小" 33 for(int i = 1; i <= m; i++){34 int r1 = find(a[i].x);35 int r2 = find(a[i].y);36 if(r1 != r2){37 f[r1] = r2;38 ans = max(ans, a[i].l);//维护最大边权 39 }//"并" 40 }41 printf("%d", ans);42 return 0;43 }
AC代码

 

转载于:https://www.cnblogs.com/New-ljx/p/10846708.html

你可能感兴趣的文章
Django之form表单实例
查看>>
Spring Cloud自定义引导属性源
查看>>
[共通]手机端网页开发问题及解决方法整理
查看>>
我的友情链接
查看>>
${basePath}
查看>>
linux命令之uniq简单用法
查看>>
使用Eclipse调试Java程序的10个技巧
查看>>
Hive分桶表
查看>>
oracle10g 启动时报错:ORA-32004 ORA-19905
查看>>
思科分发列表过滤路由(RIP)动态路由协议篇
查看>>
可登录的用户数量是1.6万个,软件的性能得到充分的考验
查看>>
[实战]MVC5+EF6+MySql企业网盘实战(23)——文档列表
查看>>
[译] ES2018(ES9)的新特性
查看>>
Javascript基础复习 数据类型
查看>>
C# Selenium 破解腾讯滑动验证
查看>>
bom与dom的区别
查看>>
Matlab2012a下配置LibSVM—3.18
查看>>
Java生成-zipf分布的数据集(自定义倾斜度,用作spark data skew测试)
查看>>
修复CefSharp浏览器组件中文输入Bug
查看>>
正则与sed,grep,awk三剑客
查看>>