UVA 1395 Slim Span(枚举)
来源:互联网 发布:php header cookie 编辑:程序博客网 时间:2024/06/07 12:43
#include<iostream>#include<vector>#include<algorithm>#include<cstring>using namespace std;const int maxn=100+5;const int inf=(1<<30);int f[maxn];int n,m;bool map[maxn][maxn],used[maxn];struct edge{ int u,v,w; edge(int u,int v,int w): u(u),v(v),w(w) {} bool operator < (const edge &rhs) const{ return w<rhs.w; }};vector<edge> ve;int slim;int findset(int x) {return f[x]==x?x:f[x]=findset(f[x]);}void kruskal(vector<edge> edges){ int maxx=0,minx=inf; sort(edges.begin(),edges.end()); for(int i=0;i<m;i++){ int root1=findset(edges[i].u); int root2=findset(edges[i].v); if(root1==root2) continue; if(edges[i].w==inf) return; f[root2]=root1; minx=min(minx,edges[i].w); maxx=max(maxx,edges[i].w); } slim=min(slim,abs(maxx-minx));}void dfs(int u){ for(int i=1;i<=n;i++){ if(map[u][i]&&used[i]==false){ used[i]=true; dfs(i); } }}int main(){ while(scanf("%d%d",&n,&m)&&(n+m)) { slim=inf; ve.clear(); memset(map,false,sizeof(map)); memset(used,false,sizeof(used)); for(int i=0;i<m;i++){ int u,v,w; scanf("%d%d%d",&u,&v,&w); ve.push_back(edge(u,v,w)); map[u][v]=map[v][u]=true; } sort(ve.begin(),ve.end()); int count=0; used[1]=true; dfs(1); for(int i=1;i<=n;i++) if(used[i]) count++; if(count<n) {printf("-1\n");continue;} for(int i=1;i<=n;i++) f[i]=i; kruskal(ve); for(int i=0;i<m;i++){ for(int j=1;j<=n;j++) f[j]=j; ve[i].w=inf; kruskal(ve); } printf("%d\n",slim); } return 0;}
0 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 1395 Slim Span
- UVA 1395Slim Span
- uva 1395Slim Span
- uva 1395 Slim Span
- Uva 1395 Slim Span
- [枚举最小瓶颈生成树]UVa-1395 - Slim Span(kruskal)
- UVA - 1395 - Slim Span(Kruskal算法+枚举)
- uva 1395 slim span MST
- UVA 1395 Slim Span--苗条的生成树(并查集+枚举)
- Oracle学习之:数据迁移工具(2):Data Dump
- 系统频繁Full gc问题分析及解决办法
- ssh批量执行 sudo 命令 需要输入用户密码
- SqueezeNet、GoogLenet
- Linux和Windows之间的各种挂载方式
- UVA 1395 Slim Span(枚举)
- iOS 版本更新
- JAVAWEB开发之HttpServletResponse和HttpServletRequest详解(下)(各种乱码、验证码、重定向和转发)
- 2.冒泡排序——啊哈算法java实现
- rabbitmq安装
- 深入浅出JMS(一)--JMS基本概念
- 微信小程序form组件
- PHP性能分析xhprof使用
- LocalSocket