博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关押罪犯
阅读量:5290 次
发布时间:2019-06-14

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

带权并查集+贪心+排序

1 #include 
2 #include
3 using namespace std; 4 struct data {
int x,y,z;}; 5 data f[100005]; 6 int n,m,a[20005],b[20005],i; 7 inline bool cmp(data a,data b) 8 { 9 return a.z>b.z;10 }11 inline int find(int x)12 {13 if(a[x]==x) return x;14 a[x]=find(a[x]);15 return a[x];16 }17 inline void ad(int x,int y)18 {19 x=find(a[x]);20 y=find(a[y]);21 a[x]=y;22 }23 inline bool check(int x,int y)24 {25 x=find(x);26 y=find(y);27 if(x==y) return true;28 return false;29 }30 int main()31 {32 scanf("%d%d",&n,&m);33 for(i=1;i<=n;i++) a[i]=i;34 for(i=1;i<=m;i++)35 scanf("%d%d%d",&f[i].x,&f[i].y,&f[i].z);36 sort(f+1,f+m+1,cmp);37 for(i=1;i<=m+1;i++)38 {39 if(check(f[i].x,f[i].y)) {printf("%d",f[i].z);break;}40 else41 {42 if(!b[f[i].x]) b[f[i].x]=f[i].y;43 else {ad(b[f[i].x],f[i].y);}44 if(!b[f[i].y]) b[f[i].y]=f[i].x;45 else {ad(b[f[i].y],f[i].x);}46 }47 }48 return 0;49 }

 

 

转载于:https://www.cnblogs.com/ainiyuling/p/11136969.html

你可能感兴趣的文章
Linux查看文件编码格式及文件编码转换<转>
查看>>
Leetcode: Find Leaves of Binary Tree
查看>>
Vue 模板解释
查看>>
http://www.bootcss.com/
查看>>
20145308 《网络对抗》 注入shellcode+Return-to-libc攻击 学习总结
查看>>
将多张图片和文字合成一张图片
查看>>
自己动手写ORM(01):解析表达式树生成Sql碎片
查看>>
如何使用USBWebserver在本机快速建立网站测试环境
查看>>
百度Ueditor编辑器的Html模式自动替换样式的解决方法
查看>>
变量提升
查看>>
线性表可用顺序表或链表存储的优缺点
查看>>
在现有的mysql主从基础上,搭建mycat实现数据的读写分离
查看>>
opencv安装配置
查看>>
JAVA-初步认识-第六章-面向对象(举例)
查看>>
js合并数组
查看>>
cNoteSetCursor_命令窗口光标设置
查看>>
[Flex] flex手机项目如何限制横竖屏?只允许横屏?
查看>>
tensorflow的graph和session
查看>>
Benelux Algorithm Programming Contest 2014 Final(第二场)
查看>>
随机变量的期望为什么把不是自己密度函数当成自己的权重来求期望呢?
查看>>