n次最小生成树kruskal

将所有的边排序,权值小的在前。

设排序后第i条边为路径中的最长边,那么这条路径一定是由1~i中的一些边组成

因为最高速和最低速的差尽量小,最高速确定了,最低速应尽量大。

所以j从i downto 1,将边j加入边集,如果此时s和t联通了(s t在并查集的一个集合中),那么找到一组可行的解:最大i.w,最小j.w,与最优解比较、更新。

如果还没联通,继续找下一个j。直到j到1还没有,那么说明i为最大边是不行的,i++继续。

代码:

#include<iostream>
#include<algorithm>
#define MaxN 505
#define MaxM 5005
using namespace std; int n,m;
struct edge{
int u,v,w;
}eg[MaxM];
bool flag=false;
int ansa=0x3f3f3f3f,ansb=;
int start,end; int pa[MaxN];
void init(){
for(int i=;i<=n;i++)pa[i]=i;
}
int find(int x){
if(x!=pa[x])pa[x]=find(pa[x]);
return pa[x];
}
void un(int x,int y){
if(find(x)==find(y))return;
pa[find(x)]=find(y);
} bool ff(edge a,edge b){
return a.w<b.w;
}
int gcd(int a,int b){
return b?gcd(b,a%b):a;
} void out(int a,int b){
if((double)a/b < (double)ansa/ansb){
int t=gcd(a,b);
ansa=a/t;
ansb=b/t;
//cout<<a<<"/"<<b<<" "<<ansa<<"/"<<ansb<<endl;
}
} int main(){
cin>>n>>m;
for(int i=;i<=m;i++){
scanf("%d%d%d",&eg[i].u,&eg[i].v,&eg[i].w);
}
cin>>start>>end; sort(eg+,eg++m,ff); for(int i=;i<=m;i++){
init();
for(int j=i;j>=;j--){
un(eg[j].u,eg[j].v);
if(find(start)==find(end)){
out(eg[i].w,eg[j].w);
flag=true;
}
}
}
if(flag){
cout<<ansa;
if(ansb!=)cout<<'/'<<ansb;
}
else cout<<"IMPOSSIBLE";
return ;
}

code1001 舒适的路线的更多相关文章

  1. [题解]codevs1001 舒适的路线

    h3 { font-family: Consolas; color: #339966 } .math { font-family: Consolas; color: gray } 题目描述 Descr ...

  2. 求最大边/最小边的比值最小的路径 codevs 1001 舒适的路线

    codevs 1001 舒适的路线 2006年  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond   题目描述 Description Z小镇是一个景色宜人 ...

  3. codevs 1001 舒适的路线(Kruskal)

    传送门 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,…,N),这些景点被M(0<M≤5 ...

  4. [codevs1001]舒适的路线

    [codevs1001]舒适的路线 试题描述 Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,-,N),这些景点被M(0 ...

  5. AC日记——舒适的路线 codevs 1001 (并查集+乱搞)

    1001 舒适的路线 2006年  时间限制: 2 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description Z小镇是 ...

  6. Codevs 1001 舒适的路线 2006年 NOIP全国联赛提高组

    1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观 ...

  7. codevs 1001 舒适的路线 (并查集)

    题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光. Z小镇附近共有 N(<N≤)个景点(编号为1,,,…,N),这些景点被M(<M≤)条道路连 ...

  8. codevs1001 舒适的路线 - 贪心 - 并查集

    题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,…,N),这些景点被M(0<M≤ ...

  9. 【Kruskal】舒适的路线

    [codevs1001]舒适的路线 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,… ...

随机推荐

  1. geek网工作室主页------我的第一个小项目

    传送门:袁咩咩的小小博客 很快,就到了大二的寒假,大学的生活就这样过去了接近一半,之前听说大二寒假会有项目什么的,已经准好了心理准备. 但第一次着手项目,还是有点小紧张 在这之前我已经看了一些框架,也 ...

  2. 我的AOP那点事儿--1

    题记:一段时间以来一直想整理下关于AOP的知识,之前一直停留在会怎么使用AOP,关于AOP的深入点儿的知识就不知所以然了,正好项目上刚好用到需要用AOP实现的功能,所以找个时间统一整理下就很有必要了. ...

  3. 企业web管理软件开发平台

    可以自定义拖动记忆位置的part桌面 权限(功能菜单查看范围)设置界面 权限(人员数据查看范围)设置界面 菜单排序和名称设置界面 业务模块 自定义字段界面 业务功能  列表界面 业务功能   查询界面 ...

  4. c# 爬虫(二) 模拟登录

    有了上一篇的介绍,这次我们来说说模拟登录,上一篇见 :c# 爬虫(一) HELLO WORLD 原理 我们知道,一般需要登录的网站,服务器和客户端都会有一段时间的会话保持,而这个会话保持是在登录时候建 ...

  5. cocos命令行生成项目

    cocos命令行生成项目: cocos new GoodDay(项目名称) -p com.boleban.www(包名字) -l cpp(项目类型) -d D:\DevProject\cocos2dx ...

  6. HDU 2516 取石子游戏(斐波那契)

    取石子游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  7. Serv-u只开放21端口连接不上解决方案

    在Serv-U的Local Server -> Settings -> Advanced -> PASV port range里, 填入给PASV模式使用的本地端口范围,如60000 ...

  8. [Windows报错]要求的函数不受支持、这可能是由于 CredSSP 加密 Oracle 修正

    版本说明: 服务器版本:Windows Server 2008 R2 SP1(虚机) 客户端版本:Windows 10 家庭版   问题描述: 使用Windows远程桌面连接时弹出如下描述的错误,如图 ...

  9. redis相对关系型数据库的优势

    它是键值数据库(非关系),数据查询比关系型数据库快. ps:redis是树状结构,查询快 redis是基于内存的一个数据库,I/O的效率影响较小. ps: 备份数据同步是才进行I/O操作.这个数据同步 ...

  10. python操作excel表格文件--使用xlrd模块

    原文: http://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html 引言: 实际工作中,可能很多情况下都会用到excel表格,像如果不需 ...