poj slim span
来源:互联网 发布:wap手机彩票源码 编辑:程序博客网 时间:2024/05/21 11:08
#include <bits/stdc++.h>using namespace std;#define N 105#define INF 0x7ffffffstruct Edge{ int u; int v; int w;}edge[N*N/2];int n, m, span, p[N], rank[N];int cmp(Edge a, Edge b){ return a.w<b.w;}int find(int x){ return p[x] == x ? x : p[x] = find(p[x]);}void unionSet(int x, int y){ if (rank[x] > rank[y]) p[y] = x; else { p[x] = y; if (rank[x] == rank[y]) rank[y]++; }}void kruskal(){ sort(edge+1, edge+m+1, cmp); for(int i=1; i<=m-n+2; i++) { int cnt = 0; int start = 0; for(int j=1; j<=n; j++) p[j] = j; memset(rank, 0, sizeof(rank)); for(int k=i; k<=m; k++) { int x = find(edge[k].u); int y = find(edge[k].v); if(x != y) { unionSet(x,y); cnt++; if(!start) start = i; if(cnt == n-1) { span = min(span, edge[k].w-edge[start].w); break; } } } } if(span == INF) cout<<-1<<endl; else cout<<span<<endl;}int main(){ while(~scanf("%d%d",&n, &m) && n+m) { for(int i=1; i<=m; i++) cin>>edge[i].u>>edge[i].v>>edge[i].w; span = INF; kruskal(); } return 0;}
0 0
- POJ 3522 Slim Span
- poj 3522 Slim Span
- POJ 3522 Slim Span
- poj 3522 Slim Span
- poj 3522 Slim Span
- poj 3522 Slim Span
- poj 3522 Slim Span
- POJ 3522 Slim Span
- poj 3522 Slim Span
- POJ 3522 Slim Span
- poj 3522 Slim Span
- poj 3522 Slim Span
- POJ 3522 Slim Span
- POJ 3522 Slim Span
- poj slim span
- poj 3522 Slim Span
- poj 3763:Slim Span
- POJ 3522 Slim Span
- expect用法
- 关于c语言声明 void (*signal(int sig, void(*func)(int)))(int)的理解
- 加油小白
- 关于conversion to dalvik format failed with error
- Http与HTTP隧道技术
- poj slim span
- ios7毛玻璃效果实现
- Ubuntu下Android Studio设置CheckStyle
- ubuntu 下VIM安装YourCompleteMe(中间问题已解决)
- MySQL禁止反向解析客户端IP(skip-name-resolve)
- 简单的实现涂鸦功能
- findbugs 出错类型及对应解释
- 怎么让tabbarviewcontroller的多个item在一开始的时候就能加载出item的标题和图标
- “未定义的标识符:SurfFeatureDetector”问题解决办法