JZOJ 1751. Span
来源:互联网 发布:sql 求和带条件 编辑:程序博客网 时间:2024/05/29 11:56
Description
某国有N个村子,M条道路,为了实现“村村通工程”现在要”油漆”N-1条道路(因为某些人总是说该国所有的项目全是从国外进口来的,只是漆上本国的油漆罢了),因为“和谐”是此国最大的目标和追求,以致于对于最小造价什么的都不在乎了,只希望你所选出来的最长边与最短边的差越小越好。
Input
第一行给出一个数字TOT,代表有多少组数据,Tot<=6
对于每组数据,首先给出N,M
下面M行,每行三个数a,b,c代表a村与b的村道路距离为c.
Output
输出最小差值,如果无解输出”-1”.
Sample Input
1
4 5
1 2 3
1 3 5
1 4 6
2 4 6
3 4 7
Sample Output
1
Data Constraint
Hint
【样例解释】
选择1-4,2-4,3-4这三条边.
【数据范围】
1:2 ≤ n ≤ 100 and 0 ≤ m ≤ n(n − 1)/2
2:每条边的权值小于等于10000
3:保证没有自环,没有重边
分析
先把边按长度排序,然后枚举最长边,再从大到小加边,直到实现“村村通工程”,最后加入的边即为此最长边对应的最短边。。
加边时用并查集维护。
代码
#include <algorithm>#include <iostream>#include <cstring>#include <complex>#include <cstdio>#include <queue>#include <cmath>#include <map>#include <set>#define N 50005#define INF 0x7fffffff#define sqr(x) ((x) * (x))#define pi acos(-1)int read(){ int x = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9'){if (ch == '-') f = -1; ch = getchar();} while (ch >= '0' && ch <= '9') {x = x * 10 + ch - '0'; ch = getchar();} return x * f;}struct NOTE{ int x,y,z;}a[N];bool cmp(NOTE a, NOTE b){ return a.z > b.z;}int fa[N];int n,m,ans;int find(int x){ return x == fa[x] ? x : fa[x] = find(fa[x]);}int main(){ int T = read(); while (T--) { ans = INF; n = read(), m = read(); for (int i = 1; i <= m; i++) a[i].x = read(), a[i].y = read(), a[i].z = read(); std::sort(a + 1, a + m + 1, cmp); for (int i = 1; i <= m; i++) { for (int j = 1; j <= n; j++) fa[j] = j; int tot = 0; for (int j = i; j <= m; j++) { int x = find(a[j].x), y = find(a[j].y); if (x != y) { fa[y] = x; tot++; if (tot == n - 1) { ans = std::min(ans, a[i].z - a[j].z); break; } } } } if (ans != INF) printf("%d\n",ans); else printf("-1\n"); }}
阅读全文
0 0
- JZOJ 1751. Span
- span
- span
- span
- SPAN
- Span
- span
- <span>
- span
- span
- span
- <span></span>
- SPAN 元素 | span 对象
- 创建元素<span></span>
- span div
- SPAN 元素
- span标签
- span应用
- Transfer Learning in a Transductive Setting阅读笔记NIPS2013
- 阿里云ECS云服务器外网IP无法访问
- 虚拟地址空间以及编译模式
- springmvc
- 在ROS中使用OpenCV进行简单的图象处理--原理篇
- JZOJ 1751. Span
- wait()和waitpid()的理解
- nginx+keepalived搭建高可用负载均衡(主备模式)
- Request和Reponse请求乱码问题
- [Docker]1.VirtualBox中使用Docker Machine管理主机
- Java开发中的23种设计模式详解----建造者模式
- Android中使用自定义样式和主题
- 动态规划
- Ajax调用servlet无反应?理理思路,找找错误.