uva 1395 Slim Span
来源:互联网 发布:土建计价软件 编辑:程序博客网 时间:2024/06/07 13:27
题目:Slim Span
代码:
#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<map>#include<algorithm>#include<sstream>#include<queue>#include<set>using namespace std;struct Edge {int x,y,z;Edge() {}Edge(int one,int two,int three) {x=one,y=two,z=three;}bool operator <(const Edge& other) const {if(z<other.z||(z==other.z&&x<other.x)||(z==other.z&&x==other.x&&y<other.y)) return true;return false;}};int n,m;Edge a[5000];int fa[105]= {0};int ans;int find(int x) {if(fa[x]==-1) return x;return fa[x]=find(fa[x]);}void make() {ans=(1<<30);for(int i=1; i<=m; i++) {memset(fa,-1,sizeof(fa));int s1=(1<<30),s2=0;int cnt=0;for(int j=i; j<=m; j++) {int f1=find(a[j].x),f2=find(a[j].y);if(f1==f2) continue;s1=min(a[j].z,s1),s2=max(a[j].z,s2);fa[f1]=f2;cnt++;if(cnt==n-1) {ans=min(ans,s2-s1);break;}}}}void readin() {for(int i=1; i<=m; i++) {scanf("%d%d%d",&a[i].x,&a[i].y,&a[i].z);}sort(a+1,a+m+1);}int main() {while(~scanf("%d%d",&n,&m)&&(n!=0||m!=0)) {readin();make();if(ans==(1<<30)) printf("-1\n");else printf("%d\n",ans);}return 0;}
阅读全文
2 0
- UVA 1395 Slim Span
- 【UVA】1395-Slim Span
- UVA 1395 - Slim Span
- UVA - 1395 Slim Span
- UVa 1395 Slim Span
- UVA 1395 Slim Span
- UVa 1395 slim span
- UVA 1395 Slim Span
- UVA 1395 Slim Span
- UVA 1395Slim Span
- uva 1395Slim Span
- uva 1395 Slim Span
- Uva 1395 Slim Span
- UVA 1395 Slim Span(枚举)
- uva 1395 slim span MST
- UVA 1395 - Slim Span(MST)
- UVa #1395 Slim Span (例题11-2)
- UVa 1395 - Slim Span(MST)
- 配对交易启示
- Matlab 编程 Project Euler Problem 20 Factorial digit sum
- Django工具:Git简介与基本操作
- Android selector动态更改字体颜色
- Spring 声明式事务管理----基于AspectJ的XML方式
- uva 1395 Slim Span
- C/C++ 函数指针
- UVA 11419 SAM I AM (最小点覆盖)
- LeetCode习题笔记——Add Two Numbers
- Cookie管理
- <机器学习实战>--朴素贝叶斯(一)
- linux系统基本命令(九)
- 编码 —— PCM 编码
- 频率域图像增强及MATLAB实现