HDU 1598(并查集 kruskal思想)
2015-08-25 15:57
309 查看
kurskal的思想
#include<iostream> #include<algorithm> using namespace std; const int maxn=100005; struct node { int from,to,len;}a[maxn]; int fa[maxn]; int Find(int x) { if(x==fa[x]) return x; return fa[x]=Find(fa[x]); } void Merge(int x,int y) { x=Find(x),y=Find(y); if(x!=y) fa[y]=x; } bool cmp(node a,node b) { return a.len<b.len; } int main() { int n,m; while(cin>>n>>m) { for(int i=0;i<m;i++) cin>>a[i].from>>a[i].to>>a[i].len; sort(a,a+m,cmp); int q; cin>>q; while(q--) { int s,e; cin>>s>>e; int ans=1<<30; for(int i=0;i<m;i++) { for(int j=0;j<=n;j++) fa[j]=j; for(int j=i;j<m;j++) { Merge(a[j].from,a[j].to); if(Find(s)==Find(e)) { ans=min(ans,a[j].len-a[i].len); break; } } } if(ans==(1<<30)) cout<<-1<<endl; else cout<<ans<<endl; } } return 0; }
相关文章推荐
- 剑指offer——数值的整数次方
- 排序算法之插入排序(C语言实现)
- 直方图均衡化
- Spring+mybatis配置动态数据源
- building live555 library for iphoneos
- 找不到要编译的文件——path环境变量配置
- 第七章 压缩列表
- nginx源码安装
- ubuntu下找会root的密码
- sql中in和exists的区别效率问题(转)
- 文章标题
- 容易失误的清单
- c语言与c++区别
- Spring Data JPA 常用注解 @Query、@NamedQuery
- gpon系统---omci的位置
- UVA - 1395 Slim Span (最小生成树Kruskal)
- 在线学习
- PS 滤镜— —水波效果
- 计算机网络组网与配置技术—— 读书笔记4、网络设备
- 数据结构之循环单链表