bzoj1050旅行
其实没有辣么难,
暴力枚举最小边是哪条边,然后每次跑一边最小生成树,
当$s,t$刚好联通时最后加的边的权值就是当前的最大边最小的情况
然后判断一下,更新答案就好
/**************************************************************
Problem: 1050
User: zhangheran
Language: C++
Result: Accepted
Time:2656 ms
Memory:2072 kb
****************************************************************/ #include<iostream>
#include<cstdio>
//#include"suqingnian.h"
#include<algorithm>
using namespace std; template<typename _Element_gcd>
_Element_gcd
_gcd(_Element_gcd _m, _Element_gcd _n)
{
while (_n != )
{
_Element_gcd _t = _m % _n;
_m = _n;
_n = _t;
}
return _m;
} int n,m;
struct data{
int u;int v;int value;
friend bool operator <(const data &a,const data &b) {return a.value<b.value;}
}edge[];int cnt;
void add(int u,int v,int value)
{
edge[++cnt].u=u;
edge[cnt].v=v;
edge[cnt].value=value;
return ;
} int fa[];
inline void build() {for(int i=;i<=n;i++) fa[i]=i;return ;}
int find(const int &x) {return fa[x]==x?x:fa[x]=find(fa[x]); }
inline bool check(const int &a,const int &b) {return find(a)==find(b);}
inline void merge(const int &x,const int &y) {fa[fa[x]]=fa[y]; return ;} int u,v,value;
int s,t;int ans1,ans2;
int now1,now2,num;
bool book=;bool ins;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++) scanf("%d%d%d",&u,&v,&value),add(u,v,value);
scanf("%d%d",&s,&t);
sort(edge+,edge+m+);
for(int i=;i<=m;i++){
build();now1=edge[i].value;ins=false;
for(int j=i;j<=m;j++)
if(!check(edge[j].u,edge[j].v)){
merge(edge[j].u,edge[j].v);
if(check(s,t)){now2=edge[j].value;book=true;ins=true;break;}
}
if(ins){
if(ans1==||now1*ans2>ans1*now2) ans1=now1,ans2=now2;
if(ans1!=&&ans2!=)num=_gcd(ans1,ans2),ans1/=num,ans2/=num;}
}
if(!book){puts("IMPOSSIBLE");return ;}
if(ans2==) {puts("");return ;}
num=_gcd(ans1,ans2);
ans1/=num,ans2/=num;
if(ans1==) {printf("%d",ans2);return ;}
printf("%d/%d",ans2,ans1);
return ;
}
bzoj1050旅行的更多相关文章
- BZOJ-1050 旅行comf 并查集+乱搞
好久以前codevs上做过的,拿着改了改.. 1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2194 S ...
- BZOJ1050 旅行comf(kruskal)
旅行comf 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大边和最小边 ...
- bzoj1050 旅行
Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S和T,求一条路径,使得路径上最大 ...
- 【BZOJ1050】[HAOI2006]旅行
[BZOJ1050][HAOI2006]旅行 题面 bzoj 洛谷 题解 先将所有边从小往大排序 枚举钦定一条最小边 再枚举依次枚举最大边,如果两个点联通了就\(break\)统计答案即可 代码 #i ...
- 【BZOJ1050】[HAOI2006]旅行comf 并查集
[BZOJ1050][HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<300 ...
- 【bzoj1050】 旅行comf
http://www.lydsy.com/JudgeOnline/problem.php?id=1050 (题目链接) 题意 给出一个无向图,求图中两点间某条路径使得最大权值除以最小权值的值最小 So ...
- BZOJ1050 HAOI2006旅行(最小生成树+LCT)
暴力枚举路径中权值最小边是哪个,然后求出边权不小于它的边的最小生成树,即可保证该路径上最大值最小.暴力当然可以过,这里使用LCT维护.注意数据中有自环. #include<iostream> ...
- 【bzoj1050】[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2813 Solved: 1534[Submit][St ...
- bzoj1050【HAOI2006】旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2205 Solved: 1174 [Submit][ ...
随机推荐
- css实现类似heigth:100%的方法
1. 效果 2. 代码 2.1. Html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...
- 机器学习模型数据结构:logistic regression, neural network, convolutional neural network
可以用两种方式来看神经网络,一种就是层的集合,也就是层组成的数组,另一种是神经元的集合,也就是神经元组成的Graph. 基于神经元的实现方式中,需要定义两个类 Neuron, Weight Neuro ...
- Opencv 发现轮廓 findContours
vector<vector<Point>> vec_p; vector<Vec4i> vec_4f; findContours(img_canny1, vec_p, ...
- eval 是执行一段完整的js字符串代码,并将结果返回
var strArray="[{"message1":{ "id": "-1","content": &quo ...
- C#异步中的Task,async,await
class Program { static void Main(string[] args) { Console.WriteLine("我是主线程,线程ID:{0}", Thre ...
- 处理事件冒泡,阻止默认事件工具类,兼容IE
//处理事件冒泡,阻止默认事件工具类,兼容IEvar eventUtil={ // 添加句柄 addHandler:function(element,type,handler){ if(element ...
- Openssl sess_id命令
一.简介 sess_id指令是一个调试工具,用来处理SSL_SESSION结构的,可以打印出其中的细节 二.语法 openssl sess_id [-inform PEM|DER] [-outform ...
- java之yield(),sleep(),wait()区别详解-备忘笔记[转]
1.sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁.也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据.注意该方 ...
- [C++] const and char*
const and char* NOTICE: char *str = "hello"; the value of str is the address of the fi ...
- 1097G Vladislav and a Great Legend
传送门 分析 https://blog.csdn.net/forever_shi/article/details/88048528 代码 #include<iostream> #inclu ...