CODEVS1001 舒适的路线 (并查集)
对所有边从大到小排序,枚举最大边,O(m)验证,用并查集维护图是否联通。
- program CODEVS1001;
- const maxm=;
- maxn=;
- INF=;
- type arr=record
- u,v,w:int64;
- end;
- var eg:array[..maxm] of arr;
- fa:array[..maxn] of longint;
- i,j,m,n,x,y,z,s,t,u,v,d:longint;
- ans1,ans2:int64;
- procedure add(u,v,w:longint);
- begin
- inc(j);
- eg[j].u:=u;
- eg[j].v:=v;
- eg[j].w:=w;
- end;
- procedure sort(l,r: longint);
- var
- i,j,x: longint;
- y:arr;
- begin
- i:=l;
- j:=r;
- x:=eg[(l+r) div ].w;
- repeat
- while eg[i].w>x do
- inc(i);
- while x>eg[j].w do
- dec(j);
- if not(i>j) then
- begin
- y:=eg[i];
- eg[i]:=eg[j];
- eg[j]:=y;
- inc(i);
- j:=j-;
- end;
- until i>j;
- if l<j then
- sort(l,j);
- if i<r then
- sort(i,r);
- end;
- function find(x:longint):longint;
- begin
- if fa[x]=x then exit(x);
- fa[x]:=find(fa[x]);
- exit(fa[x]);
- end;
- function gcd(x,y:longint):longint;
- begin
- if y= then exit(x) else exit(gcd(y,x mod y));
- end;
- begin
- readln(n,m);
- j:=;
- for i:= to m do
- begin
- readln(x,y,z);
- add(x,y,z);
- end;
- readln(s,t);
- sort(,m);
- ans1:=INF;
- ans2:=-INF;
- for i:= to m do
- begin
- for j:= to n do fa[j]:=j;
- for j:=i to m do
- begin
- u:=eg[j].u; v:=eg[j].v;
- x:=find(u);
- y:=find(v);
- if x<>y then
- begin
- fa[x]:=y;
- if find(fa[s])=find(fa[t]) then
- begin
- if eg[i].w*ans2<eg[j].w*ans1 then
- begin
- ans1:=eg[i].w;
- ans2:=eg[j].w;
- end;
- continue;
- end;
- end;
- end;
- end;
- d:=gcd(ans1,ans2);
- if ans1=INF then writeln('IMPOSSIBLE') else
- if d=ans2 then writeln(ans1 div ans2) else
- writeln(ans1 div d,'/',ans2 div d);
- end.
CODEVS1001 舒适的路线 (并查集)的更多相关文章
- [codevs1001]舒适的路线
[codevs1001]舒适的路线 试题描述 Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,-,N),这些景点被M(0 ...
- codevs1001 舒适的路线 - 贪心 - 并查集
题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,…,N),这些景点被M(0<M≤ ...
- [题解]codevs1001 舒适的路线
h3 { font-family: Consolas; color: #339966 } .math { font-family: Consolas; color: gray } 题目描述 Descr ...
- 参观路线——并查集+dfs
题目描述 Lambdaland由N个城市组成,任两个城市间都有一条道路相连. 下个月TBL准备参观Lambdaland.他将从城市1开始,以深度优先搜索顺序参观能所有遍历到的城市. 由于TBL是一位 ...
- 【Kruskal】舒适的路线
[codevs1001]舒适的路线 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,… ...
- codevs 1001 舒适的路线 (并查集)
题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光. Z小镇附近共有 N(<N≤)个景点(编号为1,,,…,N),这些景点被M(<M≤)条道路连 ...
- AC日记——舒适的路线 codevs 1001 (并查集+乱搞)
1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description Z小镇是 ...
- bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...
- 求最大边/最小边的比值最小的路径 codevs 1001 舒适的路线
codevs 1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Z小镇是一个景色宜人 ...
随机推荐
- 201. Bitwise AND of Numbers Range -- 连续整数按位与的和
Given a range [m, n] where 0 <= m <= n <= 2147483647, return the bitwise AND of all numbers ...
- 368. Largest Divisible Subset -- 找出一个数组使得数组内的数能够两两整除
Given a set of distinct positive integers, find the largest subset such that every pair (Si, Sj) of ...
- for循环的嵌套——7月24日
练习一:输入一个正整数,用for循环嵌套求阶乘的和 //输入一个正整数,求1!+2!+....+n! 用for循环嵌套 Console.Write("请输入一个正整数:"); ...
- C# 通过URL获取图片并显示在PictureBox上的方法
, ); System.Net.WebRequest webreq = System.Net.WebRequest.Create(url); System.Net.WebResponse webres ...
- Objective-C:Foundation框架-常用类-NSNumber
NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合 ...
- jar转dll
IKVM http://www.cnblogs.com/luckeryin/archive/2012/03/28/2421274.html
- BZOJ1507 [NOI2003]Editor
是一道裸的Splay(反正我不会Splay,快嘲笑我!) 只需要维护在数列上加点删点操作即可,不会写Splay的渣渣只好Orz iwtwiioi大神一下了.(后来发现程序直接抄来了...) 就当我的第 ...
- Jquery操作复选框(CheckBox)的取值赋值实现代码
赋值 复选框 CheckBox 遍历 取值 1. 获取单个checkbox选中项(三种写法): $("input:checkbox:checked").val() 或者 $(&q ...
- 2014北邮新生归来赛解题报告d-e
D: 399. Who Is Joyful 时间限制 3000 ms 内存限制 65536 KB 题目描述 There are several little buddies standing in a ...
- HDU 4888 Redraw Beautiful Drawings(2014 Multi-University Training Contest 3)
题意:给定n*m个格子,每个格子能填0-k 的整数.然后给出每列之和和每行之和,问有没有解,有的话是不是唯一解,是唯一解输出方案. 思路:网络流,一共 n+m+2个点 源点 到行连流量为 所给的 ...