bzoj 1050: [HAOI2006]旅行comf&&【codevs1001】
Description
Input
Output
Sample Input
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
IMPOSSIBLE
【样例输出2】
5/4
【样例输出3】
2
#include<cstdio>
#include<cstring>
#include<algorithm>
const int N=,M=;
int read(){
int ans=,f=,c=getchar();
while(c<''||c>''){if(c=='-') f=-; c=getchar();}
while(c>=''&&c<=''){ans=ans*+(c-''); c=getchar();}
return ans*f;
}
int S,T,n,m,ansmx,ansmn,g;
struct node{int from,to,w;}e[*M];
bool cmp(node a,node b){return a.w<b.w;}
int f[N];
int find(int x){while(f[x]!=x) x=f[x]=f[f[x]]; return x;}
int gcd(int x,int y){return !y?x:gcd(y,x%y);}
int main(){
n=read(); m=read();
for(int i=;i<=m;i++) e[i].from=read(),e[i].to=read(),e[i].w=read();
S=read(); T=read();
std::sort(e+,e++m,cmp);
int now=;
while(now<=m){
int mn=-,mx=-,k;
for(int i=;i<=n;i++) f[i]=i;
for(k=now;k<=m;k++){
int p=find(e[k].from),q=find(e[k].to);
if(p==q) continue;
f[q]=p; if(find(S)==find(T)){mx=e[k].w; break;}
}//printf("[%d %d]\n",k,mx);
if(mx==-){
if(!ansmx) return printf("IMPOSSIBLE\n"),;
break;
}
for(int i=;i<=n;i++) f[i]=i;
for(;k;k--){
int p=find(e[k].from),q=find(e[k].to);
if(p==q) continue; //printf("QAQ[%d %d]\n",p,q);
f[q]=p; if(find(S)==find(T)){mn=e[k].w; now=k+; break;}
}//printf("[%d %d]\n",k,mn);
if(mn==-){
if(!ansmn) return printf("IMPOSSIBLE\n"),;
break;
}
if((!ansmn&&!ansmx)||mx*ansmn<ansmx*mn) ansmx=mx,ansmn=mn;
if((g=gcd(ansmx,ansmn))!=) ansmx/=g,ansmn/=g;
}
//if((g=gcd(ansmx,ansmn))!=1) ansmx/=g,ansmn/=g; //printf("[%d]\n",g);
if(ansmn==) printf("%d\n",ansmx);
else printf("%d/%d\n",ansmx,ansmn);
return ;
}
bzoj 1050: [HAOI2006]旅行comf&&【codevs1001】的更多相关文章
- 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: [HAOI2006]旅行comf(codevs.cn 1001 舒适的路线) 快排+并查集乱搞
没用的话:好像很久没发博客了,主要是懒太蒟找不到水题.我绝对没弃坑...^_^ 还用些话:本文为博主原创文章,若转载请注明原网址和作者. 进入正题: 先pa网址: bzoj :http://www.l ...
- bzoj 1050 [HAOI2006]旅行comf (并查集)
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1050 思路: 先将每条边的权值排个序优先小的,然后从小到大枚举每一条边,将其存到并查集 ...
- bzoj 1050 [HAOI2006]旅行comf——kruscal
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1050 因为还有Impossible的情况,所以想到了kruscal.(?) 但好像不太行.然 ...
- BZOJ 1050: [HAOI2006]旅行comf (并查集 或 单调队列)
这是建空间后做的第一道题啊= =好水 排序,枚举最小边,然后并查集求出联通时的最大边 或者排次序,从小到大插边,如果插边时最小的边拿掉不会使s与t不联通,就删去。 code: #include< ...
- bzoj 1050: [HAOI2006]旅行comf【枚举+并查集】
m是5000,就想到了直接枚举比例 具体做法是是先把边按照边权从小到大排序,然后先枚举最小边权,再枚举最大边权,就是从最小边权里一个一个加进并查集里,每次查st是否联通,联通则退出,更新答案 #inc ...
- BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
题意 第一行包含两个正整数,N和M.下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路 ,车辆必须以速度v在该公路上行驶.最后一行包含两个正整数s,t,表示想知道从景点s到 ...
- 【BZOJ 1050】1050: [HAOI2006]旅行comf (动态SPFA)
1050: [HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000). ...
随机推荐
- 如何删除TFS项目
TFS是先建集合,再在集合下面建项目.删除的时候,需要先删除项目,再删除集合,然后重新建.具体步骤如下: 1.删除项目 删除项目必须通过命令来进行删除,调用TFSDeleteProjec ...
- 第三篇 Fiddler数据包分析
上一篇博文写完了Fiddler的配置,本篇讲讲如何用Fiddler进行数据包的分析,下图是抓到的数据包区域,对这些区域的可见字段进行解析如下, 以便了解这些字段的含义 1. 了解数据包区域的字段含义 ...
- LB
LB(LBaaS)及Load Balance as a Service是 Neutron 提供的一项高级网络服务. LBaaS 允许租户在自己的网络中创建和管理 load balancer,load ...
- 深度可分卷积(Depthwise Separable Conv.)计算量分析
上次读到深度可分卷积还是去年暑假,各种细节都有些忘了.记录一下,特别是计算量的分析过程. 1. 标准卷积和深度可分卷积 标准卷积(MobileNet论文中称为Standard Convolution, ...
- 安装VMware的一般步骤(安装过程总结)
(安装的是vmwareworkstation11以上) 0.遇到问题为没有权限打开服务“VMAuthdService”时,需要去管理->服务中打开对应的Windows Management In ...
- eclipse 创建Makefile工程生成多个执行文件
1.创建Makefile工程 2.创建inc src Debug 目录 用于存放头文件源文件 3.编写Makefile 需要在有源文件的目标天剑Makefile文件,如下给出一个生成两个target的 ...
- 简明Python3教程 1.介绍
Python是少有的几种既强大又简单的编程语言.你将惊喜地发现通过使用Python即可轻松专注于解决问题而非和你所用的语言格式与结构. 下面是Python的官方介绍: Python is an eas ...
- 【UML】状态图介绍
1.Statechart Diagram 即状态图,主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列.引起状态转移的事件(Event).因状态转移而伴随的动作(Action) ...
- 接触到的一些数据结构: LIST_ENTRY, TAILQ
双链表: LIST_ENTRY: typedef struct _LIST_ENTRY { struct _LIST_ENTRY *Flink; follow: next entry, header ...
- Android 多屏幕适配 dp和px的关系
一直以来别人经常问我,android的多屏幕适配到底是怎么弄,我也不知道如何讲解清楚,或许自己也是挺迷糊. 以下得出的结论主要是结合官方文档进行分析的https://developer.android ...