【Kruskal】Slim Span
[Uva1395]Slim Span
题目略……
试题分析:codevs1001舒适的路线上加一个判一下连通性就好,顺便把除改成减
代码:
#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
using namespace std;
inline int read(){
int x=0,f=1;char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) x=x*10+c-'0';
return x*f;
}
int N,M;
struct data{
int x,y,v;
}e[5001]; bool cmp(data a,data b){
return a.v<b.v;
}
int fa[5001];
void init(){
for(int i=1;i<=N;i++) fa[i]=i;
return ;
}
int find(int x){
if(x!=fa[x]) return fa[x]=find(fa[x]);
return x;
}
int ans1,ans2; int main(){
while(1){
N=read(),M=read();
if(!(N+M)) break;
if(M==0){puts("-1");continue;}
for(int i=1;i<=M;i++){
e[i].x=read(),e[i].y=read();
e[i].v=read();
}
ans1=ans2=-1;
bool alflag=false;
sort(e+1,e+M+1,cmp);
for(int i=1;i<=M;i++){
init();
for(int j=i;j<=M;j++){
int u=find(e[j].x),v=find(e[j].y);fa[v]=u;
if(ans1!=-1&&e[j].v-e[i].v>=ans2-ans1) break;
bool flag=false;
for(int k=1;k<=N;k++) if(find(k)!=find(1)) {flag=true;break;}
if(!flag){ans1=e[i].v;ans2=e[j].v;break;}
}
if(ans1==-1){puts("-1");alflag=true;break;}
}
if(!alflag)printf("%d\n",ans2-ans1);
}
}
【Kruskal】Slim Span的更多相关文章
- 【poj3522】 Slim Span
http://poj.org/problem?id=3522 (题目链接) 题意 求最小生成树的最大边与最小边差最小. Solution 排序后滑动窗口维护 代码 // poj3522 #includ ...
- 【UVA 1395】 Slim Span (苗条树)
[题意] 求一颗生成树,满足最大边和最小边之差最小 InputThe input consists of multiple datasets, followed by a line containin ...
- 【uva 1395】Slim Span(图论--最小生成树+结构体快速赋值 模版题)
题意:给一个N(N<=100)个点的联通图(无自环和平行边),求苗条度(最大边-最小边的值)尽量小的生成树. 解法:枚举+Kruskal.先从小到大排序边,枚举选择的最小的边. 1 #inclu ...
- poj 2253 Frogger【最小生成树变形】【kruskal】
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30427 Accepted: 9806 Descript ...
- 【次小生成树】【Kruskal】【prim】【转】
原博客出处:https://blog.csdn.net/yasola/article/details/74276255 通常次小生成树是使用Prim算法进行实现的,因为可以在Prim算法松弛的同时求得 ...
- BZOJ2753 [SCOI2012]滑雪与时间胶囊 【kruskal】
题目链接 BZOJ2753 题解 完了我连\(kruskal\)裸题都做不出来了.. 题目是求最小树形图,即有向图最小生成树 我们不能直接上\(kruskal\),而要保证先加入前面的点, 所以我们排 ...
- 【Kruskal】舒适的路线
[codevs1001]舒适的路线 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,… ...
- poj 1679 The Unique MST (次小生成树(sec_mst)【kruskal】)
The Unique MST Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 35999 Accepted: 13145 ...
- 【Tensorflow】slim.arg_scope()的使用
https://blog.csdn.net/u013921430/article/details/80915696
随机推荐
- 【洛谷 P1419】 寻找段落(二分答案,单调队列)
题目链接 开始还以为是尺取.发现行不通. 一看标签二分答案,恍然大悟. 二分一个\(mid\)(实数),把数列里每个数减去\(mid\),然后求前缀和,在用单调队列维护\(sum[i-t\text{~ ...
- POJ 3069 Saruman's Army (模拟)
题目连接 Description Saruman the White must lead his army along a straight path from Isengard to Helm's ...
- C# 获取一段日期内的工作日
/// <summary> /// 根据指定时间段计算工作日天数 /// </summary> /// <param name="firstDay"& ...
- EditText中inputType详解
<EditText Android:layout_width="fill_parent" android:layout_height="wrap_content&q ...
- bASE--Risk
//参考base-4.0.2.jar public class Risk implements Serializable //规则名public String ruleName; //规则包名publ ...
- [转]python os模块 常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...
- [Leetcode Week14]Path Sum II
Path Sum II 题解 原创文章,拒绝转载 题目来源:https://leetcode.com/problems/path-sum-ii/description/ Description Giv ...
- python爬虫模块之HTML解析模块
这个就比较简单了没有什么好强调的,如果返回的json 就是直接按照键值取,如果是网页就是用lxml模块的html进行xpath解析. from lxml import html import json ...
- Tensorflow项目实战一:MNIST手写数字识别
此模型中,输入是28*28*1的图片,经过两个卷积层(卷积+池化)层之后,尺寸变为7*7*64,将最后一个卷积层展成一个以为向量,然后接两个全连接层,第一个全连接层加一个dropout,最后一个全连接 ...
- vue点击切换颜色限制个数(用了mui框架)
vue点击切换颜色 只能点击一个 <!doctype html> <head> <meta charset="UTF-8"> <title ...