【UVA】1395-Slim Span
来源:互联网 发布:普通话水平测试软件 编辑:程序博客网 时间:2024/06/05 07:26
数学实在练不下去了,只能来水几个图论了,真想像D神一样来句:这道题很简单,直接AC就可以了。
大体思路:按照边的权值排序,枚举区间,利用并查集判断是否构成通路。
140426631395Slim SpanAcceptedC++0.2652014-08-15 02:11:53#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>#include<stack>#include<queue>#include<map>#include<set>#include<list>#include<cmath>#include<string>#include<sstream>#include<ctime>using namespace std;#define _PI acos(-1.0)#define INF (1 << 10)#define esp 1e-9typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int> pill;/*======================================================================================*/#define MAXD 5000 + 10#define MAX_SIZE 100 + 10int fa[MAX_SIZE];struct Line{ int x; int y; int len; friend bool operator <(Line p,Line q){ if(p.len < q.len) return true; else return false; }}node[MAXD];int n,m;int find_father(int u){ return fa[u] == u ? u : fa[u] = find_father(fa[u]);}void init(){ for(int i = 1 ; i <= n ; i++) fa[i] = i;}bool Judge(){ int root = find_father(1); /*找到1的父亲*/ for(int i = 2 ; i <= n ; i++){ int _node = find_father(i); if(_node != root) return false; } return true;}int main(){ while(scanf("%d%d",&n,&m)){ if(!n && !m) break; for(int i = 0 ; i < m ; i++) scanf("%d%d%d",&node[i].x,&node[i].y,&node[i].len); sort(node,node + m); int ans = -1; for(int i = 0 ; i < m ; i++){ init(); for(int j = i ; j < m ; j++){ int x = node[j].x; int y = node[j].y; int _x = find_father(x); /*找到x的父亲*/ int _y = find_father(y); /*找到y的父亲*/ if(_x != _y) fa[_x] = _y; if(Judge()){ if(ans >= 0) ans = min(ans,node[j].len - node[i].len); else ans = node[j].len - node[i].len; break; } } } printf("%d\n",ans); } 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 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)
- Servlet的init方法
- 【HDU4952】Number Transformation(数学)
- 把数组排成最小的数
- hdu 4951 Multiplication table 哈希水过
- PhoneGap Android配置
- 【UVA】1395-Slim Span
- log4CXX第二篇---配置文件(properties文件)详解
- java和微软不得不说的故事
- C#.Net 垃圾回收机制GC详解
- IN、EXISTS的相关子查询用INNER JOIN 代替--sql2000性能优化
- easy_install——error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed -- S
- WebRTC源代码探索之旅——多线程篇(2)
- POJ 1753 Flip Game (DFS)
- 利用LruCache加载网络图片实现图片瀑布流效果(改进版)