POJ 3522 Slim Span 最小生成树,暴力 难度:0
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的更多相关文章
- poj 3522 Slim Span (最小生成树kruskal)
http://poj.org/problem?id=3522 Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Submissions ...
- POJ 3522 ——Slim Span——————【最小生成树、最大边与最小边最小】
Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 7102 Accepted: 3761 Descrip ...
- POJ 3522 Slim Span(极差最小生成树)
Slim Span Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 9546 Accepted: 5076 Descrip ...
- POJ 3522 Slim Span 最小差值生成树
Slim Span Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=3522 Description Gi ...
- POJ 3522 Slim Span 暴力枚举 + 并查集
http://poj.org/problem?id=3522 一开始做这个题的时候,以为复杂度最多是O(m)左右,然后一直不会.最后居然用了一个近似O(m^2)的62ms过了. 一开始想到排序,然后扫 ...
- POJ 3522 - Slim Span - [kruskal求MST]
题目链接:http://poj.org/problem?id=3522 Time Limit: 5000MS Memory Limit: 65536K Description Given an und ...
- POJ 3522 Slim Span
题目链接http://poj.org/problem?id=3522 kruskal+并查集,注意特殊情况比如1,0 .0,1.1,1 #include<cstdio> #include& ...
- poj 1789 Truck History 最小生成树 prim 难度:0
Truck History Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19122 Accepted: 7366 De ...
- POJ 3522 Slim Span (Kruskal枚举最小边)
题意: 求出最小生成树中最大边与最小边差距的最小值. 分析: 排序,枚举最小边, 用最小边构造最小生成树, 没法构造了就退出 #include <stdio.h> #include < ...
随机推荐
- iOS8 获取通知设置状态
UIUserNotificationSettings *settings = [[UIApplication sharedApplication] currentUserNotificationSet ...
- EF中使用SQL语句或存储过程(小笔记)
1.无参数查询 var model = db.Database.SqlQuery<UserInfo>("select* from UserInfoes ").ToLis ...
- linux gksu用法
apt-get install gksu gksu是linux下图形化的su/sudo工具 sudo 用来执行命令行(CLI)程序 gksu 用来执行图形的(GUI)程序 GUI = Graphica ...
- HTML5Canvas标签
- aspx后缀映射成html
1.网站的配置文件添加如下代码: <configuration> <configSections> <section name="RewriterConfig& ...
- Sqlserver_视图
SQL CREATE VIEW 语句 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表. 视图包含行和列,就像一个真实的表.视图中的字段就是来自一个或多个数据库中的真实的表中的字段. 您可 ...
- linux 相关学习记录
(一)概念① 物理CPU实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个② 逻辑CPU /proc/cpuinfo 用来存储cpu硬件信息的信息内容分 ...
- Hbase之获取数据
import org.apache.hadoop.hbase.TableName; import org.apache.hadoop.hbase.client.*; import org.apache ...
- android用shape给linearLayout设置边框,怎样只保留底部或顶部的边框,把其它三个方向的边框去掉呢?
http://bbs.csdn.net/topics/390485215 这种方法只是两个颜色块相减而已 <?xml version="1.0" encoding=" ...
- 根据List中对象的某一属性进行排序
不多说,直接看代码: package test; import java.util.ArrayList; import java.util.Collections; import java.util. ...