【codevs1001】[bzoj1050]舒适的路线
Input
Output
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
- 这道题是枚举最小边,然后就是简单的kruskal,找最优解,十分简单。
- #include<algorithm>
- #include<iostream>
- #include<cstring>
- #include<cstdio>
- #include<queue>
- using namespace std;
- #define N 505
- #define M 5005
- #define INF 30000
- int n,m,x,y,z,s,t,up,down;
- double ans;
- int f[N];
- struct hp{int x,y,z;}edge[M];
- int cmp(hp a,hp b)
- {
- return a.z<b.z;
- }
- int find(int x)
- {
- if (x==f[x]) return x;
- f[x]=find(f[x]);
- return f[x];
- }
- int gcd(int a,int b)
- {
- if (!b) return a;
- else return gcd(b,a%b);
- }
- int main()
- {
- scanf("%d%d",&n,&m);
- for (int i=;i<=n;++i) f[i]=i;
- for (int i=;i<=m;++i)
- {
- scanf("%d%d%d",&x,&y,&z);
- int f1=find(x),f2=find(y);
- if (f1!=f2) f[f1]=f2;
- edge[i].x=x,edge[i].y=y,edge[i].z=z;
- }
- scanf("%d%d",&s,&t);
- if (find(s)!=find(t))
- {
- puts("IMPOSSIBLE");
- return ;
- }
- ans=INF;
- sort(edge+,edge+m+,cmp);
- for (int l=;l<=m;++l)
- {
- bool flag=false; int r;
- for (int i=;i<=n;++i) f[i]=i;
- for (int i=l;i<=m;++i)
- {
- int f1=find(edge[i].x),f2=find(edge[i].y);
- if (f1!=f2) f[f1]=f2;
- if (find(s)==find(t))
- {
- r=i;
- flag=true;
- break;
- }
- }
- if (flag)
- {
- double now=(edge[r].z+0.0)/(edge[l].z+0.0);
- if (now<ans) ans=now,up=edge[r].z,down=edge[l].z;
- }
- }
- int t=gcd(up,down);
- if (t!=down) printf("%d/%d\n",up/t,down/t);
- else printf("%d\n",up/t);
- }
【codevs1001】[bzoj1050]舒适的路线的更多相关文章
- [题解]codevs1001 舒适的路线
h3 { font-family: Consolas; color: #339966 } .math { font-family: Consolas; color: gray } 题目描述 Descr ...
- [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≤ ...
- 【Kruskal】舒适的路线
[codevs1001]舒适的路线 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,… ...
- 求最大边/最小边的比值最小的路径 codevs 1001 舒适的路线
codevs 1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Z小镇是一个景色宜人 ...
- codevs 1001 舒适的路线(Kruskal)
传送门 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光.Z小镇附近共有N(1<N≤500)个景点(编号为1,2,3,…,N),这些景点被M(0<M≤5 ...
- AC日记——舒适的路线 codevs 1001 (并查集+乱搞)
1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description Z小镇是 ...
- Codevs 1001 舒适的路线 2006年 NOIP全国联赛提高组
1001 舒适的路线 2006年 时间限制: 2 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观 ...
- codevs 1001 舒适的路线 (并查集)
题目描述 Description Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光. Z小镇附近共有 N(<N≤)个景点(编号为1,,,…,N),这些景点被M(<M≤)条道路连 ...
随机推荐
- JavaScript--我发现!原来你是这样的JS(1)
一.前言: 前段时间看红宝书(JavaScript高级程序设计),但没有计划的去看,也没有做详细的笔记,读了之后有点空虚,感觉不对劲啊,学的东西很难记住,印象不深啊,有种挫败感,作前端的js都学不好怎 ...
- block的定义及使用
(1)最基础的用法案例,我们可以把block理解为一段类似变量一样的可执行函数代码片段: void (^printBlock)(NSString *x); printBlock = ^(NSStrin ...
- 基于Vue全家桶制作的的高仿美团APP
鸣谢:该项目核心部分参考了慕课网精英讲师ustbhuangyi的课程,其余部分高仿美团APP构建. 前端菜鸟项目,大佬们轻喷~ 美团外卖APP
- python怎么导入自定义函数
python 编程中经常需要调用自己定义的函数,在大型程序中自定义的函数一般会和main函数分开,这么主要讲下在不同文件下定义的函数怎么调用: 首先在有文件夹test_python文件夹下有main. ...
- JMeter打开脚本失败 如何解决?
最近有碰到JMeter打开之前的脚本,报错了,见下图: 后来发现这是因为之前保存脚本的 jmeter 和这次打开脚本的 jmeter 版本不一致(图一)或者版本一致而插件没有保持同步(图二)的原因: ...
- 团队作业6——展示博客(Alpha版本)
Deadline: 2017-5-7 22:00PM,以博客发表日期为准 评分基准: 按时交 - 有分,检查的项目包括后文的四个方面 团队成员介绍 Alpha阶段进展 团队合作,各成员分工 Beta阶 ...
- 结对编程1--基于GUI的四则运算题目生成器
最终项目详细代码(coding地址)/李志强的博客/我的详细代码/方言的博客 一.需求分析 1.实现之前项目的功能,如:除了整数之外,还要支持真分数的四则运算,真分数的运算,并且要求能处理用户的输入, ...
- 201521123081《Java程序设计》 第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- 201521123006 《Java程序设计》第4周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 1.2 使用常规方法总结其他上课内容. 本周除了继承,我们还重点学习了多态. (1)多态性在于有相同的形态,却是不同的行为或者说是不 ...
- 201521123062《Java程序设计》第1周学习总结
1.本章学习总结 认识Java平台运行环境,运行软件 初步认识JDK,JRE,JVM基本含义 书面作业 1.为什么java程序可以跨平台运行?执行java程序的步骤是什么? Java平台运行在各平台的 ...