https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1888

题目大意:

定义Slim span为一幅无向图的生成树,且它的值为最大的权减最小的权。现在让你求最小的Slim span

思路:

固定最小的边,枚举最大的边。然后看看哪个大就可以了~

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int MAXN=100+10;
int n,m,fa[MAXN];
int find(int cur)
{
return cur==fa[cur]? cur:fa[cur]=find(fa[cur]);
} struct edge
{
int from,to,val;
bool operator<(const edge& x)const {
return val<x.val;
} }e[MAXN*MAXN]; void init()
{
for(int i=1;i<=n;i++)
fa[i]=i;
} int kruskal(int i)
{
int res=0;
int cnt=0;
for(;i<m;i++)
{
int x=e[i].from,y=e[i].to;
int root_x=find(x),root_y=find(y);
if(root_x==root_y) continue;
cnt++;
fa[root_x]=root_y;
res=e[i].val;
}
if(cnt!=n-1)
return -1;
return res;
} int main()
{
while(~scanf("%d%d",&n,&m),n||m)
{
for(int i=0;i<m;i++)
scanf("%d%d%d",&e[i].from,&e[i].to,&e[i].val);
sort(e,e+m);
init();
int ans=kruskal(0);
if(ans==-1)
{
printf("-1\n");
continue;
}
ans-=e[0].val;
for(int i=1;i<m;i++)
{
init();
int res=kruskal(i); //固定最小边,枚举最大边
if(res==-1) break;
ans=min(ans, res-e[i].val);
}
printf("%d\n",ans);
}
return 0;
}

LA 3887 - Slim Span 枚举+MST的更多相关文章

  1. [LA 3887] Slim Span

    3887 - Slim SpanTime limit: 3.000 seconds Given an undirected weighted graph G <tex2html_verbatim ...

  2. UVA1395 Slim Span(枚举最小生成树)

    题意: 求最小生成树中,最大的边减去最小的边 最小值. 看了题解发现真简单=_= 将每条边进行从小到大排序,然后从最小到大一次枚举最小生成树,当构成生成树的时候,更新最小值 #include < ...

  3. uvalive 3887 Slim Span

    题意: 一棵生成树的苗条度被定义为最长边与最小边的差. 给出一个图,求其中生成树的最小苗条度. 思路: 最开始想用二分,始终想不到二分终止的条件,所以尝试暴力枚举最小边的长度,然后就AC了. 粗略估计 ...

  4. 最小生成树POJ3522 Slim Span[kruskal]

    Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7594   Accepted: 4029 Descrip ...

  5. POJ 3522 Slim Span 最小差值生成树

    Slim Span Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3522 Description Gi ...

  6. poj 3522 Slim Span (最小生成树kruskal)

    http://poj.org/problem?id=3522 Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions ...

  7. POJ-3522 Slim Span(最小生成树)

    Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 8633   Accepted: 4608 Descrip ...

  8. Slim Span(Kruskal)

    题目链接:http://poj.org/problem?id=3522   Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Subm ...

  9. POJ 3522 Slim Span(极差最小生成树)

    Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9546   Accepted: 5076 Descrip ...

随机推荐

  1. wget 指令学习之递归抓取文档技巧

    在线上阅读文档的时候,有没有想将它抓取到本地,以备没有网的时候阅读只需? 先上指令: $ wget --user-agent="Mozilla/5.0 (X11; Linux x86_64) ...

  2. 智能指针shared_ptr, auto_ptr, scoped_ptr, weak_ptr总结

    看这里: http://blog.csdn.net/lollipop_jin/article/details/8499530 shared_ptr可以多线程同时读,但是涉及到写,需要加锁. share ...

  3. PHP GD 生成图片验证码+session获取储存验证码

    以下分享一个PHP制作的图片验证码案例:案比例如以下图: 运用PHP GD具体请看:http://www.php.net/manual/zh/book.image.php 后台图片代码例如以下: &l ...

  4. IIS6下AD域设置

    简介:IIS6下AD域设置 IIS6下AD域设置 http://files.cnblogs.com/files/KingUp/AD%E5%9F%9F%E8%AE%BE%E7%BD%AE.rar

  5. c#中文字符串与byte数组互相转化

    因为中文字符串一个字符占两个字节,所以不能用正常的方式与byte之间进行互相转化 中文字符串转成byte[] byte[] ping = Encoding.UTF8.GetBytes("你的 ...

  6. 玲珑杯 Round 19 A simple math problem

    Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 DESCRIPTION You have a sequence anan, ...

  7. echarts tooltip提示框 自定义小圆点(颜色、形状和大小等等)

    项目是拿 echarts + 百度地图 来做可视化界面,现在到收尾阶段慢慢优化. 先附代码: formatter: function(params) { var result = '' params. ...

  8. 七、Docker+nginx

    原文:七.Docker+nginx docker run -p 80:80 --name nginx-v1.0.0 -v /usr/nginx/www:/www -v /home/docker/ngi ...

  9. 自绘listCtrl控件选中该行高亮(模拟windows)

    CListCtrl的派生类CMyListCtrl的DrawItem()函数里添加代码 CDC *pDC = CDC::FromHandle(lpDrawItemStruct->hDC); if ...

  10. 可执行EXE在windows调用过程

    举例图中, 一个C#编写的测试程序, 输出两句话分别 : Hello, GoodBye, 介绍其在windows上CLR的调用过程. 1.在执行Main方法之前, CLR会检测出Main的代码引用的所 ...