BZOJ1050 [HAOI2006]旅行

Description

  给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000)。给你两个顶点S和T
,求一条路径,使得路径上最大边和最小边的比值最小。如果S和T之间没有路径,输出”IMPOSSIBLE”,否则输出
这个比值,如果需要,表示成一个既约分数。 备注: 两个顶点之间可能有多条路径。

Input

  第一行包含两个正整数,N和M。下来的M行每行包含三个正整数:x,y和v。表示景点x到景点y之间有一条双向
公路,车辆必须以速度v在该公路上行驶。最后一行包含两个正整数s,t,表示想知道从景点s到景点t最大最小速
度比最小的路径。s和t不可能相同。
1<N<=500,1<=x,y<=N,0<v<30000,0<M<=5000

Output

  如果景点s到景点t没有路径,输出“IMPOSSIBLE”。否则输出一个数,表示最小的速度比。如果需要,输出一
个既约分数。

Sample Input

【样例输入1】
4 2
1 2 1
3 4 2
1 4
【样例输入2】
3 3
1 2 10
1 2 5
2 3 8
1 3
【样例输入3】
3 2
1 2 2
2 3 4
1 3

Sample Output

【样例输出1】
IMPOSSIBLE
【样例输出2】
5/4
【样例输出3】
2

题解

将所有边按权值排序,枚举最小边,顺序枚举最大边直到s和t连通。利用并查集。

没了。

附代码:

#include <algorithm>
#include <cstdio>
typedef long long LL;
const int N = 505, M = 5050;
struct Edge{int u, v, w;bool operator<(const Edge &x)const{return w < x.w;}
};
Edge e[M];
int fa[N];
int find(int x) {if (fa[x]) return fa[x] = find(fa[x]);return x;
}
inline void Union(int x, int y) {if ((x = find(x)) != (y = find(y)))fa[x] = y;
}
int gcd(int a, int b) {return b ? gcd(b, a % b) : a;
}
int main() {int n, m, s, t;scanf("%d%d", &n, &m);for (int i = 0; i < m; ++i)scanf("%d%d%d", &e[i].u, &e[i].v, &e[i].w);std::sort(e, e + m);scanf("%d%d", &s, &t);int ansn = 10000000, ansd = 1;for (int l = 0; l + 1 < m; ++l) {for (int i = 1; i <= n; ++i) fa[i] = 0;Union(e[l].u, e[l].v);int r;for (r = l + 1; r < m && find(s) != find(t); ++r)Union(e[r].u, e[r].v);if (find(s) == find(t)) {int an = e[r - 1].w, ad = e[l].w;if ((LL)an * ansd < (LL)ansn * ad)ansn = an, ansd = ad;}}if (ansn == 10000000) return printf("IMPOSSIBLE"), 0;int g = gcd(ansn, ansd);ansn /= g, ansd /= g;printf("%d", ansn);if (ansd > 1) printf("/%d", ansd);return 0;
}

  

转载于:https://www.cnblogs.com/y-clever/p/6999313.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258439.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

biosrecovery什么意思_BIOS中的每个中文是什么意思

BIOS中的每个中文是什么意思&#xff0c;请对照的翻译一下Time/System Time时间/系统时间Date/System Date日期/系统日期Level 2 Cache二级缓存System Memory系统内存Video Controller视频控制器Panel Type液晶屏型号Audio Controller音频控制器Modem Controller调制解调器(Mod…

百度网盘7.3.1.10版本增加工作空间功能,可实现百度网盘与电脑文件夹同步

百度网盘新增的工作空间是一款文件同步的产品&#xff0c;支持电脑本地与云端之间的文件同步&#xff0c;多设备间文件自动保持同步、支持查看文件每次都修改的历史版本。功能类似于onedrive。如果有同步需求的小伙伴可以尝试下载最新版的百度网盘试用该功能哦。下载网址&#…

ubuntu+idea intellij配置android开发环境

最近对移动开发产生兴趣&#xff0c;决定在未来几年内利用空余时间开发一些app或游戏什么的&#xff0c;鉴于ios开发成本较高&#xff0c;且自身对java相对熟悉&#xff0c;因此选择了学习android。都说android市场不很很好&#xff0c;收益较难&#xff0c;但是仍觉得只要功夫…

typeof的用法

typeof可以返回变量的类型&#xff0c;返回值为字符串&#xff0c;其值有 "undefined" "boolean" "string" "number" "object" "function" 而 typeof(null)会返回object 转载于:https://www.cnblogs.com/lhyhappy…

opencv 最大连通域_opencv 查找连通区域 最大面积实例

今天在弄一个查找连通的最大面积的问题。要把图像弄成黑底&#xff0c;白字&#xff0c;这样才可以正确找到。然后调用下边的方法&#xff1a;RETR_CCOMP:提取所有轮廓&#xff0c;并将轮廓组织成双层结构(two-level hierarchy),顶层为连通域的外围边界&#xff0c;次层位内层边…

JS 函数柯里化

在计算机科学中&#xff0c;柯里化是把接受多个参数的函数变换成接受一个单一参数&#xff08;最初函数的第一个参数&#xff09;的函数&#xff0c;并且返回接受余下的参数而且返回结果的新函数的技术。——详见 维基百科柯里化就是预先将某些参数传入&#xff0c;得到一个简单…

LTI系统的物理可实现性与希尔伯特变换

产品的设计一般为线性时不变系统&#xff0c;要求系统具有物理可实现性&#xff0c;从时域上看&#xff0c;h(t)具有因果性&#xff1b;从频域上看&#xff0c;|H(jw)|符合佩利—维纳准则。任何具有因果性的系统&#xff0c;|H(jw)|的实部R(w)满足希尔伯特变换&#xff0c;|H(j…

垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想

Delphi 是一个基本上被我遗忘的工具&#xff0c; 要不是在使用RapidSql , 我是收不到Embarcadero 公司发出的邀请来參加Delphi XE5的公布会的。 有人可能要问为什么是Embarcadero &#xff08;名称很拗口&#xff09;而不是Borland 开Delphi 公布会&#xff0c; 这是由于Borla…

iOS Appstore 版本更新

1&#xff0c;版本更新 通过比较构建号/版本号 检查更新 /// 构建号 50 // NSString * currentVersion [NSBundle mainBundle].infoDictionary["CFBundleVersion"];/// 版本号 2.2.0//CFBundleShortVersionStringNSString * currentVersion [NSBundle mainBund…

ubuntu下安装国际版QQ

在网上看到了好多的ubuntu下安装QQ的方法 好多 下面是看别人的文章 来测试的一篇 ubuntu下 安装国际版QQhttp://www.ubuntukylin.com/applications/showimg.php?langcn&id23下载 地址网盘:http://yun.baidu.com/share/link?shareid2983202140&uk202032639下载好以后 …

傅里叶变换应用——信号调制与解调

傅里叶变换的典型应用主要用于通信的信号调制与解调&#xff0c;信号调制的目的是将信号进行变换&#xff0c;使其便于传输。频率调制是将低频信号调制到高频载波信号上。同步信号解调是接受系统产生同步的高频载波信号进行解调&#xff0c;从调制信号中恢复原信号的过程。调制…

cocos2d-x返回Android游戏黑屏解决办法

返回Android游戏黑屏解决办法这几天逛cocos2d-x.org论坛&#xff0c;发现cocos2d-x的作者放出来一个帖子&#xff0c;用来解决返回Android游戏加载资源时黑屏的问题。帖子过些日子估计就沉了&#xff0c;所以转出来&#xff0c;以供后面查询。需要修改三个文件&#xff1a;1) c…

vue重要特性

重要特性 自定义input组件动态组件递归组件slot作用域slot异步组件内联模板子组件索引进阶 自定义指令状态管理vuex单文件组件生产部署路由xxx

连续时间系统与离散时间系统的时域分析对比

通过学习离散时间系统的时域分析&#xff0c;发现其与连续时间系统的时域分析有很多相似之处&#xff0c;自己做了一个专题拓展&#xff0c;从数学模型描述到时域分析方法对两大系统进行横向对比&#xff0c;总结两者之间的联系和异同点。

python获取当前时间的源代码_Python获取时间戳代码实例

1、获取秒级时间戳与毫秒级时间戳、微秒级时间戳import timeimport datetimet time.time()print (t) #原始时间数据print (int(t)) #秒级时间戳print (int(round(t * 1000))) #毫秒级时间戳print (int(round(t * 1000000))) #微秒级时间戳返回1499825149.257892 #原始时间数据…

AutoLayout bug集合

NSInternalInconsistencyException, reason: <NSISEngine: 0x16d5ef10>... http://stackoverflow.com/questions/28111635/ios-aspect-ratio-constraint-breaks-on-ios7-works-on-ios8 这好像是ios7.1的bug,对浮点数计算有误,一般添加按钮比例约束的时候multiplier值都是…

[SQL Server]重命名数据库【转】

原文链接&#xff1a;http://www.cnblogs.com/Ryan_j/archive/2011/04/03/2004428.html 重命名数据库很简单&#xff0c;选择数据库--右键--重命名数据库 或者 sp_renamedb oldDB ,newDB 但是你再新建的相同名字的数据库就会报错&#xff0c;提示数据库已经存在 比如test数据库…

DCOS实践分享(4):如何基于DC/OS整合SMACK(Spark, Mesos, Akka, Cassandra, Kafka)

这篇文章入选CSDN极客头条 http://geek.csdn.net/news/detail/71572 当前&#xff0c;要保证业务的市场竞争力&#xff0c;仅靠设计一个可用并且好看的产品&#xff0c;已经完全不能满足要求。全球消费者都希望产品能够足够的智能化&#xff0c;通过大数据分析来改善他们的用户…

连续系统的卷积积分与离散系统的卷积和

在LTI连续系统中&#xff0c;以冲激函数为基本信号&#xff0c;将任意信号分解&#xff0c;从而得到连续系统的零状态响应等于激励与系统冲激响应的卷积积分 &#x1d466;&#x1d467;&#x1d460;&#x1d461;&#x1d453;&#x1d461;∗h&#x1d461; 在LTI离散…

自学python从零开始学_新手学习python-从零开始学习

1.学习pythonurllib2 常用方法urlopen(url, data, timeout)urllib2.Request()urllib.urlencode()params {}get : url "?" paramshttp:请求分析User-Agent : 有些服务器或 Proxy 会通过该值来判断是否是浏览器发出的请求Content-Type : 在使用 REST 接口时&#x…