Uva 1395 Slim Span
来源:互联网 发布:台服战网客户端mac 编辑:程序博客网 时间:2024/06/07 15:54
比较基础的一道题目,将边排序之后利用并查集查找以每一条边为起点是否存在更短的满足题意的差值,如果存在那么进行更新即可,具体实现见如下代码:
#include<iostream>#include<vector>#include<string>#include<set>#include<stack>#include<queue>#include<map>#include<algorithm>#include<cmath>#include<iomanip>#include<cstring>#include<sstream>#include<cstdio>#include<deque>using namespace std;class Edge{public:int left, right, weight;};bool compare(const Edge& a,const Edge& b){return a.weight < b.weight;}Edge edge[5005];int root[5005];const int Inf = 0x3f3f3f3f;class Solve{public:int n, m;int amount;void Init(){for (int i = 0; i < m; i++){cin >> edge[i].left >> edge[i].right >> edge[i].weight;}sort(edge,edge+m,compare);}void initRoot(){//点的坐标是从1开始的for (int i = 1; i <= m; i++)root[i] = i;}int findRoot(int a){int r = a;while (r != root[r]){r = root[r];}int t;while (root[a] != r){t = root[a];root[a] = r;a = t;}return r;}void Union(int a,int b){int root_a = findRoot(a);int root_b = findRoot(b);if (root_a != root_b){amount--;root[root_a] = root_b;}}void Deal(){Init();int ans = Inf;for (int i = 0; i < m; i++){initRoot();amount = n - 1;for (int j = i; j < m; j++){Union(edge[j].left, edge[j].right);if (amount == 0){ans = min(ans,edge[j].weight-edge[i].weight);}}}if (ans == Inf) cout << "-1" << endl;else cout << ans << endl;}};int main(){Solve a;while (cin >> a.n >> a.m){if (a.n == 0 && a.m == 0) break;a.Deal();}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)
- 让我们来写Sg函数处理的博弈吧~
- Qt 布局之QVBoxLayout Class
- 三子棋
- java任务--模拟器
- HTML解析之一:正则表达式
- Uva 1395 Slim Span
- 让PIP源使用国内镜像,提升下载速度和安装成功率。
- 机器学习性能改善备忘单
- <算法Java实现--LeetCode(1)(28)>2017-10-21
- python升级带来的yum异常:File "/usr/bin/yum", line 30
- 快速排序-深入解析
- DataInputStream,DataOutputStream,基本数据类型读写,ObjectInputStream,ObjectOutputStream,对象,读写
- Master the game of Go without human knowledge
- 贝叶斯学习及共轭先验