kruskal思想,排序后暴力枚举从任意边开始能够组成的最小生成树

#include <cstdio>
#include <algorithm>
using namespace std; const int maxn = 101;
const int maxe = maxn * maxn / 2;
struct edge{
int f,t,c;
bool operator <(edge e2)const {
return c<e2.c;
}
}e[maxe]; int par[maxn],num[maxn],n,m; void init(){
for(int i = 1;i <= n;i++){
par[i] = i;
num[i] = 1;
}
} int fnd(int a){
return par[a] == a? a: par[a] = fnd(par[a]);
} bool same(int a,int b){
return fnd(a) == fnd(b);
} void unit(int a,int b){
if(!same(a,b)){
num[fnd(a)] += num[fnd(b)];
num[fnd(b)] = 0;
par[fnd(b)] = fnd(a);
}
} int main(){
while(scanf("%d%d",&n,&m) == 2 && n){
for(int i = 0; i < m ; i++){
scanf("%d%d%d",&e[i].f,&e[i].t,&e[i].c);
}
sort(e,e+m);
int ans = 0x7fffffff;
for (int i = 0;i <= m - n + 1;i++){
init();
int ret = 0;
for(int j = i; num[fnd(1)] < n && j < m; j++){
unit(e[j].f,e[j].t);
ret = max(ret,e[j].c - e[i].c);
}
if(num[fnd(1)] == n)ans = min(ans,ret);
}
if(ans == 0x7fffffff){puts("-1");}
else printf("%d\n",ans);
}
return 0;
}

POJ 3522 Slim Span 最小生成树,暴力 难度:0的更多相关文章

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

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

  2. POJ 3522 ——Slim Span——————【最小生成树、最大边与最小边最小】

    Slim Span Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 7102   Accepted: 3761 Descrip ...

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

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

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

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

  5. POJ 3522 Slim Span 暴力枚举 + 并查集

    http://poj.org/problem?id=3522 一开始做这个题的时候,以为复杂度最多是O(m)左右,然后一直不会.最后居然用了一个近似O(m^2)的62ms过了. 一开始想到排序,然后扫 ...

  6. POJ 3522 - Slim Span - [kruskal求MST]

    题目链接:http://poj.org/problem?id=3522 Time Limit: 5000MS Memory Limit: 65536K Description Given an und ...

  7. POJ 3522 Slim Span

    题目链接http://poj.org/problem?id=3522 kruskal+并查集,注意特殊情况比如1,0 .0,1.1,1 #include<cstdio> #include& ...

  8. poj 1789 Truck History 最小生成树 prim 难度:0

    Truck History Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19122   Accepted: 7366 De ...

  9. POJ 3522 Slim Span (Kruskal枚举最小边)

    题意: 求出最小生成树中最大边与最小边差距的最小值. 分析: 排序,枚举最小边, 用最小边构造最小生成树, 没法构造了就退出 #include <stdio.h> #include < ...

随机推荐

  1. css3动画导航实现

    代码 <!DOCTYPE html> <!-- saved from url=(0223)file:///C:/Users/user/AppData/Local/Temp/HZ$D. ...

  2. python把元组组合成字典

    list=((","16g"), (","32g"), (","red"), (","bl ...

  3. android模拟器中文乱码

    问题:在xml文件中设置的中文能正确输出,但是在java文件中设置的中文会在模拟器上呈现乱码 解决方案:在build.gradle文件中添加一行代码 android {compileOptions.e ...

  4. iOS开发者帐号流程

    http://ask.dcloud.net.cn/article/152 iOS证书(.p12)和描述文件(.mobileprovision)申请 5+App开发 Apple证书 iOS证书 iOS有 ...

  5. Js_动画显示背景图片

    jAni是一个可以动画显示背景图片的jQuery插件.这个插件基本上是GIF动画的一个替代品,但是他有他的好处.所有浏览器都支持GIF形式的动画格式,而且也不需要额外的javaScript代码和标记. ...

  6. 转!!JavaBean,List,Map转成json格式

    public class User { private String username; private String password; public String getUsername() { ...

  7. phalcon几种分页方法

    phalcon几种分页方法 一: use Phalcon\Paginator\Adapter\Model as PaginatorModel; // Current page to show // I ...

  8. OI中的代码调试

    作为一位OIer,代码调试的能力必不可少. 今天梳理一下自己进行代码调试的方法,下面只是一些个人的总结. 代码的评价有三部分: 正确性 强健性 高效性 检查也应该从这三部分出发. [正确性] 打完代码 ...

  9. mathematics

    二倍角公式 史济怀-数学分析1-2003-09-19_2.asx-在线播放-优酷网,视频高清在线观看http://v.youku.com/v_show/id_XMTMzMDU1MTgw.html 国立 ...

  10. 关于GET请求带Body的问题

    今天在进行接口联调时遇到这个问题了,当时是很茫然的,因为从来没遇过. 后来又搜索了一下GET和Post的区别. 然后看见了这篇文章.不再以讹传讹,GET和POST的真正区别 我有限的知识还是无法去确定 ...