题目

枚举最小边,在用kruskal方法来让S与T,联通,这样比值就最优了。。

#include<bits/stdc++.h>
using namespace std;
int f[501];
int n,m,s,t;
int A1,A2;
double Ans;
bool have_Ans;
struct edge{int x;int y;int value;void read(){scanf("%d%d%d",&x,&y,&value);}
};edge E[5001];
bool cmp(edge A,edge B)
{return A.value<B.value;
}
int find(int x)
{return x==f[x]?x:f[x]=find(f[x]);
}
int GCD(int x,int y)
{return y==0?x:GCD(y,x%y);
}
int main()
{//freopen("in","r",stdin);scanf("%d %d",&n,&m);for(int i=1;i<=m;i++)E[i].read();sort(E+1,E+m+1,cmp);scanf("%d%d",&s,&t);have_Ans=false;Ans=100000000.0;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++)f[j]=j;for(int j=i;j<=m;j++){int fx=find(E[j].x),fy=find(E[j].y);if(fx!=fy)f[fy]=fx;if(find(s)==find(t)){have_Ans=true;if(Ans>(double)E[j].value/E[i].value){Ans=(double)E[j].value/E[i].value;A1=E[j].value;A2=E[i].value;}}}}if(!have_Ans)cout<<"IMPOSSIBLE";else{int gcd=GCD(A1,A2);A1/=gcd,A2/=gcd;if(A2==1)cout<<A1;else cout<<A1<<"/"<<A2;}return 0;
}

bzoj1050 [HAOI2006]旅行comf相关推荐

  1. bzoj1050: [HAOI2006]旅行comf

    题面在这里 题意: 给一个图,每条边有边权. 给一个s和t,如果s和t之间没有路径输出IMPOSSIBLE,否则输出路径上最大边和最小边的比值的最小值. 做法: 你把边从小到大排序.那么对于一个最小值 ...

  2. [bzoj1050 HAOI2006] 旅行comf (kruskal)

    传送门 Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得 ...

  3. BZOJ1050 [HAOI2006]旅行comf

    题目描述: 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求 一条路径,使得路径上最大边和最小边 ...

  4. bzoj1050 [HAOI2006]旅行comf(并查集)

    要求路径上最大边与最小边比值的最小值.我们知道,如果固定最小值,最大值越接近最小值,他们的比值越小.因此我们可以采用类似bzoj3454的方法,把所有边从小到大排序,枚举最小值,再枚举最大值,用并查集 ...

  5. BZOJ1050 [HAOI2006]旅行comf(Kruskal算法)

    SPFA是错误的:局部最优不能保证全局最优,因为要求的是比例最小,与路的长短无直接关系 可以设计m^2的算法: 先将边按长度排序,然后每次枚举最小边的长度w[i]作限定,依次加入更大的边, 当加到某条 ...

  6. [BZOJ1050] [HAOI2006] 旅行comf (Kruskal, LCT)

    Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T ,求一条路径,使得路径上最 ...

  7. BZOJ1050 HAOI2006 旅行comf 生成树+枚举

    题意:给订一张无向图,求一条S到T的路径,使得路径上的最大边权与最小边权的比值最小 题解:将边由小到大排序,暴力枚举最小边,然后借鉴Kruskal的思想,由小到大加入每一条大于初始边的边,检验S与T是 ...

  8. BZOJ1050 [HAOI2006]旅行comf (并查集)

    题意分析 一开始想用最短路的方法维护,然后更新信息.失败了. 想了半天,发现跟lrj书上面的一道题很像,看边才5000,暴力可做. 对边排序后枚举sta,直到发现起点和重点在一个联通块里面,统计答案即 ...

  9. 【bzoj1050】[HAOI2006]旅行comf

    1050: [HAOI2006]旅行comf Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 2813  Solved: 1534 [Submit][ ...

最新文章

  1. mciSendString 的两个小坑
  2. 小米网络推广连夜更换品牌LOGO——科技越是进化就越接近生命的形态
  3. Android 中三种启用线程的方法
  4. sql server创建新用户名登录以及为表添加角色和权限的多种方法
  5. kafka记录及面试题
  6. pytorch自带网络_PyTorch机器学习笔记(1)整好环境
  7. ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
  8. boost安装_Centos安装MySQL
  9. 安装Nvida 显示环境
  10. 杭电2540遮挡判断
  11. jsp当参数为空的时候默认显示值
  12. Android访问WCF服务(上篇)-服务端开发
  13. 转 C#正则表达式小结 匹配
  14. Python 词云图:wordcloud库的使用
  15. Java项目服务器cpu占用100%解决办法
  16. 怎样利用超图客户端打点_SuperMap iClient 7C - 网络客户端GIS开发平台
  17. 亚马逊后台付款表(Custom Transaction)详解
  18. 由浅入深玩转华为WLAN—10安全认证配置(3)无线dot1 PEAP认证,基于微软IAS服务器
  19. 流程图和火车程序Jackson图
  20. SpringCloud H版 Config 配制中心讲解

热门文章

  1. 【Fuzzy】隶属度函数和模糊推理
  2. Python:实现fuzzy operations模糊运算算法(附完整源码)
  3. Android5.0,IDA远程调试 The debugger could not attach to the selected process. irs_recv 等待的操作过时
  4. 如何批量将 ppt 后缀格式的演示文稿转换为 pptx 格式
  5. python量化策略—— alpha 三因子策略(1)
  6. 抓包PC微信小程序失败解决方法
  7. 安装计算机一级出现appcrash,电脑appcrash的问题怎么修复
  8. ECS实例及阿里云服务器ECS功能组件的说明
  9. Airbnb 2019年纽约住房情况分析报告
  10. 地产钢铁银行成低市盈率三剑客