BZOJ [HAOI2006]旅行comf
题解:枚举最大边,然后对<=最大边的边做最大生成树,使最小边最大
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100009;
const int oo=1000000000; int Gcd(int a,int b){
if(b==0)return a;
return Gcd(b,a%b);
} double ans=oo;
int ansa,ansb; int n,m;
int s,t; int father[maxn];
int Getf(int x){
if(father[x]==x)return x;
return father[x]=Getf(father[x]);
}
void Unionn(int x,int y){
int fx=Getf(x);
int fy=Getf(y);
if(fx!=fy)father[fx]=fy;
} struct Edge{
int u,v,d;
}edges[maxn];
bool cmp(const Edge &rhs1,const Edge &rhs2){
return rhs1.d<rhs2.d;
} int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i)scanf("%d%d%d",&edges[i].u,&edges[i].v,&edges[i].d);
sort(edges+1,edges+1+m,cmp);
scanf("%d%d",&s,&t);
for(int i=1;i<=m;++i){
for(int j=1;j<=n;++j)father[j]=j;
Unionn(edges[i].u,edges[i].v);
if(Getf(s)==Getf(t)){
printf("1\n");
return 0;
}
for(int j=i-1;j;--j){
int u=edges[j].u;
int v=edges[j].v;
if(Getf(u)!=Getf(v)){
Unionn(u,v);
}
if(Getf(s)==Getf(t)){
if(1.0*edges[i].d/edges[j].d<ans){
ansa=edges[i].d;
ansb=edges[j].d;
ans=1.0*edges[i].d/edges[j].d;
}
break;
}
}
} if(ans>oo-1){
printf("IMPOSSIBLE\n");
}else{
int d=Gcd(ansa,ansb);
ansa/=d;
ansb/=d;
if(ansb==1)printf("%d\n",ansa);
else printf("%d/%d\n",ansa,ansb);
}
return 0;
}
BZOJ [HAOI2006]旅行comf的更多相关文章
- BZOJ 1050 [HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1889 Solved: 976[Submit][Sta ...
- BZOJ 1050: [HAOI2006]旅行comf( 并查集 )
将edge按权值排序 , O( m² ) 枚举边 , 利用并查集维护连通信息. ------------------------------------------------------------ ...
- 【BZOJ 1050】1050: [HAOI2006]旅行comf (动态SPFA)
1050: [HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000). ...
- BZOJ 1050: [HAOI2006]旅行comf(枚举+并查集)
[HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点 ...
- BZOJ(4) 1050: [HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3984 Solved: 2236[Submit][St ...
- 1050: [HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1495 Solved: 737[Submit][Sta ...
- 【BZOJ1050】[HAOI2006]旅行comf 并查集
[BZOJ1050][HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<300 ...
- 【bzoj1050】[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2813 Solved: 1534[Submit][St ...
- bzoj 1050: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...
随机推荐
- Django null=True和blank=True的区别
今天遇到一个问题: 在restframework框架中开发,数据库了创建了一个model的属性如下所示: remarks = models.CharField(verbose_name=u" ...
- ACM-寻宝
题目描述:寻宝 有这么一块神奇的矩形土地,为什么神奇呢?因为上面藏有很多的宝藏.该土地由N*M个小正方形土地格子组成,每个小正方形土地格子上,如果标有“E”,则表示该格可以通过:如果标有“X”,则表示 ...
- spring mvc绑定参数之日期类型转换
问题复现步骤: 1.提交表单,参数为: 2.接收参数类型为product实体类,如下 3.错误日志如下: org.springframework.validation.BindException: o ...
- Python 中使用动态创建类属性的机制实现接口之后的依赖
我们在自动化测试中经常会需要关联用例处理,需要动态类属性: 推荐使用第二种方法: 创建:setattr() 获取:getattr() 两种,如何创建 类属性 loan_id # 第一种,创建 # 类名 ...
- Vue.js(25)之 vue全局配置api介绍
本文介绍的全局api并不在Vue的构造函数内,而是在Vue构造器外面提供这些方法,让我们扩展新功能. 1. vue.extend(options) 参考:https://www.w3cplus.com ...
- tomcat和servlet容器的关系
- nui UI 具有右键属性的菜单树
参考示例:树右键菜单 一:创建ContextMenu <ul id="treeMenu" class="nui-contex ...
- Python 删除文件与文件夹
版权所有,未经许可,禁止转载 章节 Python 介绍 Python 开发环境搭建 Python 语法 Python 变量 Python 数值类型 Python 类型转换 Python 字符串(Str ...
- 5分钟搞懂:基于token的用户认证
https://www.qikegu.com/easy-understanding/880 用户认证 用户认证或者说用户登录是确认某人确实是某人的过程,生活中靠身份证,网络上就要靠账号和密码.用户提供 ...
- spring源码 ListableBeanFactory接口
ListableBeanFactory接口表示这些Bean是可列表的 /* * Copyright 2002-2016 the original author or authors. * * Lice ...