[HAOI2006]l旅行

这道题。。。一眼看出一个暴力思虑。。。那就是按照生成树。。。
排完序之后从当前边开始向后做生成树。。。
统计一下答案就好了。。。
结果。。。这就是正解。。。QVQ。。。smg。。。我去。。。
呆码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#define INF 99999999
#define MAXN 1010
#define unionn(x,y) fa[y]=x
#define eps 0.000001
using namespace std; int fa[MAXN],n,m,s,t,maxn,minx,ll=INF,rr=INF;
double ans=; struct asd{
int x,y,v;
} r[]; inline int find(int x)
{
if(fa[x]!=x) fa[x]=find(fa[x]);
return fa[x];
} inline bool cmp(asd x,asd y)
{
return x.v<y.v;
} inline int gcd(int a,int b)
{
return b== ? a : gcd(b,a%b);
} int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++)
scanf("%d%d%d",&r[i].x,&r[i].y,&r[i].v);
scanf("%d%d",&s,&t);
sort(r+,r++m,cmp); for(int i=;i<=m;i++)
{
for(int j=;j<=n;j++) fa[j]=j;
unionn(find(r[i].x),find(r[i].y));
minx=maxn=r[i].v;
if(find(s)==find(t))
{
double anss=ans;
ans=(double)maxn/minx;
if(ans-eps<anss-eps)
ll=maxn,rr=minx;
break;
}
for(int j=i+;j<=m;j++)
if(find(r[j].x)!=find(r[j].y))
{
unionn(find(r[j].x),find(r[j].y));
minx=min(minx,r[j].v);
maxn=max(maxn,r[j].v);
if(find(s)==find(t))
{
double anss=ans;
ans=(double)maxn/minx;
if(ans-eps<anss-eps)
ll=maxn,rr=minx;
else ans=anss;
break;
}
}
}
if(ll==INF) { printf("IMPOSSIBLE\n"); return ;}
if((double)ll/rr==ll/rr) printf("%d",ll/rr);
else
{
while(gcd(rr,ll)!=)
{
int mid=gcd(rr,ll);
ll/=mid; rr/=mid;
}
printf("%d/%d\n",ll,rr);
}
}
代码
不过细节比较多。。。要注意。。。
[HAOI2006]l旅行的更多相关文章
- 【BZOJ】【1050】【HAOI2006】旅行comf
枚举/暴力/Kruskal orz……我sb了……其实是sb题<_< 有一道题问的是最小极差生成树……(不记得是什么名字了,就是求最大边权与最小边权差最小的生成树)做法是枚举最小边,然后k ...
- bzoj1050【HAOI2006】旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2205 Solved: 1174 [Submit][ ...
- JavaWeb 后端 <二> 之 Servlet 学习笔记
一.Servlet概述 1.什么是Servlet Servlet是一个运行在服务器端的Java小程序,通过HTTP协议用于接收来自客户端请求,并发出响应. 2.Servlet中的方法 public v ...
- HTML5 3D 粒子波浪动画特效DEMO演示
需要thress.js插件: http://github.com/mrdoob/three.js // three.js - http://github.com/mrdoob/three.js ...
- 1050: [HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1495 Solved: 737[Submit][Sta ...
- P2502 [HAOI2006]旅行
P2502 [HAOI2006]旅行有些问题光靠直觉是不靠谱的,必须有简单的证明,要么就考虑到所有情况.这个题我想的是要么见最小生成树,要么建最大生成树,哎,我sb了一种很简单的情况就能卡掉在最小生成 ...
- 【bzoj1050】[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2813 Solved: 1534[Submit][St ...
- BZOJ 1050: [HAOI2006]旅行comf(枚举+并查集)
[HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点 ...
- BZOJ 1050 [HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1889 Solved: 976[Submit][Sta ...
随机推荐
- Bulk RNA-Seq转录组学习
与之对应的是single cell RNA-Seq,后面也会有类似文章. 参考:https://github.com/xuzhougeng/Learn-Bioinformatics/ 作业:RNA-s ...
- English trip V1 - B 24. I'm Interested in... 我对...感兴趣 Teacher:Julia Key: (I/We/They) do/don't (He/She/it)does/doesn't
In this lesson you will learn to talk about people's interests. 课上内容(Lesson) interest v. 使…感兴趣(inter ...
- BGP - 4,BGP的三张表
1,BGP的三张表 邻居表(adjancy table) BGP表(forwarding database):BGP默认不做负载均衡,会选出一条最优的,放入路由表 路由表 ...
- Could not find method google() for arguments [] on repository container.
出这个问题主要是你Gradle版本太低的原因,一般要使用4.0+的版本 所以你需要更新你的Gradle版本至4.0+呦 tips:注意你的AndroidStudio版本应该是3.0以上,因为Gradl ...
- hadoop挂载多硬盘,ZZ-- multiple disks per node
hadoop挂载多硬盘 ...multiple disks per node multiple disks per node Read more at: http://www.queryhome.c ...
- linux中用户和用户组
一.用户和组原理 一个用户可以属于多个组,一个组有多个用户 在Linux中操作系统必须依赖组和用户进行管理 二.与用户和组相关的配置文件 1.组相关配置文件 1)/etc/group :管理用户组信息 ...
- 6.4 操作契约 Operation Contracts
4.操作契约 Operation Contracts “用例描述”的补充 强调: 用例中重要的动作,其开始与结束是需要一些约束 4.5 操作契约的后置条件 定义Definition 后 ...
- Educational Codeforces Round 2 E - Lomsat gelral
题意:每个节点有个值,求每个节点子树众数和 题解:可线段树合并,维护每个数出现次数和最大出现次数,以及最大出现次数的数的和 //#pragma GCC optimize(2) //#pragma GC ...
- 【转】预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法
[转]预装Win8/8.1 中文版系统升级为专业版或专业版含媒体中心版的简单方法 原文地址:http://www.iruanmi.com/upgrade-win8-china-to-a-higher- ...
- webpack配置路径及hash版本号,利用html-webpack-plugin自动生成html模板
在项目中,因为需要经常更新文件,但是浏览器缓存问题导致js文件不是最新的,所有想办法添加hash值. 并配置webpack打包文件配置路径: 配置webpack打包文件路径,及非入口 chunk文件: ...