[HAOI2006]旅行comf(枚举+最小生成树)
题意:传送门
题解:枚举+最小生成树
附上代码:
#include<bits/stdc++.h>using namespace std;const int maxn=5e2+5;
const int maxm=5e3+5;
const int inf=0x3f3f3f3f;struct edge{int u,v,w;
};
edge edges[maxm];bool cmp(edge a,edge b)
{return a.w<b.w;
}int n,m;
int x,y,v;
int s,t;
int f[maxn];int gcd(int a,int b)
{return b==0?a:gcd(b,a%b);
}int find(int x)
{if(x==f[x]){return x;}else{return f[x]=find(f[x]);}
}void merge(int a,int b)
{int x1=find(a),y1=find(b);if(x1!=y1){f[y1]=x1;}
}int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){edge &u=edges[i];scanf("%d%d%d",&u.u,&u.v,&u.w);}scanf("%d%d",&s,&t);sort(edges+1,edges+m+1,cmp);int ans1=1,ans2=inf;for(int i=1;i<=m;i++){for(int j=1;j<=n;j++){f[j]=j;}for(int j=i;j<=m;j++){int a=find(edges[j].u),b=find(edges[j].v);if(a!=b){1050merge(a,b);}if(find(s)==find(t)){if(edges[j].w*ans1<edges[i].w*ans2){ans1=edges[i].w;ans2=edges[j].w;}break;}}if(find(s)!=find(t)){break;}}int c=gcd(ans2,ans1);ans1/=c;ans2/=c;if(ans1==1&&ans2==inf){printf("IMPOSSIBLE\n");}else{if(ans1==1){printf("%d\n",ans2);}else{printf("%d/%d\n",ans2,ans1);}}return 0;
}
[HAOI2006]旅行comf(枚举+最小生成树)相关推荐
- BZOJ 1050 [HAOI2006]旅行comf(最小生成树)
题意 第一行包含两个正整数,N和M.下来的M行每行包含三个正整数:x,y和v.表示景点x到景点y之间有一条双向公路 ,车辆必须以速度v在该公路上行驶.最后一行包含两个正整数s,t,表示想知道从景点s到 ...
- BZOJ 1050: [HAOI2006]旅行comf(枚举+并查集)
[HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点 ...
- 【bzoj1050】[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2813 Solved: 1534 [Submit][ ...
- [并查集]BZOJ 1050——[HAOI2006]旅行comf
1050: [HAOI2006]旅行comf 题目描述 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<30000).给你两个顶点S ...
- BZOJ 1050 [HAOI2006]旅行comf(并查集)
1050: [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 MB Submit: 3715 Solved: 2070 [Submit][ ...
- bzoj 1050: [HAOI2006]旅行comf(尺取+最短路)
1050: [HAOI2006]旅行comf Time Limit: 10 Sec Memory Limit: 162 MB Submit: 3335 Solved: 1852 [Submit][ ...
- bzoj1050: [HAOI2006]旅行comf
题面在这里 题意: 给一个图,每条边有边权. 给一个s和t,如果s和t之间没有路径输出IMPOSSIBLE,否则输出路径上最大边和最小边的比值的最小值. 做法: 你把边从小到大排序.那么对于一个最小值 ...
- BZOJ1050 HAOI2006 旅行comf 生成树+枚举
题意:给订一张无向图,求一条S到T的路径,使得路径上的最大边权与最小边权的比值最小 题解:将边由小到大排序,暴力枚举最小边,然后借鉴Kruskal的思想,由小到大加入每一条大于初始边的边,检验S与T是 ...
最新文章
- 自然科学期刊能发表计算机论文吗,自然科学专业论文好发表吗?
- python字典(dict)+常用方法操作+列表、元组、集合、字典的互相转换
- (winform cookie)如何向某网址Post信息,并得到CookieContainer以便以后直接通过验证...
- [architecture]-Cortex-A53的configuration signals
- c++Data Member的绑定
- 第三次学JAVA再学不好就吃翔(part41)--修饰符
- 834 树中距离之和
- 【解决问题】useBean类属性[com.cheng.pojo.People]的值无效导致HTTP500问题
- python将数据写入Excel
- javascript 事件 第23节
- 算法笔记_031:计算中值和选择问题(Java)
- 剑指offer--两个链表的第一个公共结点
- linux ipv4文件,Linux IPV4 IPV6地址批量Ping脚本(工具)
- 如何快速深入理解监控知识?
- 2, 世界上第一台电子数字计算机叫什么?它诞生在哪个国家?,世界上第一台电子数字,计算机叫什么名...
- Laravel学习记录--数据填充
- 人脸识别技术和人脸识别特征
- Win8.1 IE11 浏览器无法打开任何网页的解决办法
- java互联网架构,大数据学习笔记1--------Python入门个人笔记,仅记录个人觉得需要记得东西)
- HTML特殊字符编码对照表 —— (二)
热门文章
- 让复杂Json数据和对象自由转换 --- Gson
- 2020中山大学计算机学院保研,我校举行中山大学2020级研究生招生宣讲会
- 3D打印机DIY之五------切片软件Cura的使用
- 学之思开源代码学习(1)
- web 框架的本质及自定义web框架 模板渲染jinja2 mvc 和 mtv框架 Django框架的下载安装 基于Django实现的一个简单示例...
- 漏斗分析 - AARRR模型案例分析
- 计算机专业电脑需要显卡吗,组装电脑要不要配独立显卡?
- CHERRY 键盘 alt 组合键失灵或开始菜单键失灵
- IEEE格式如何使用在线参考文献生成器
- 姜小白的Python日记Day14 系统模块详解1 time模块和random模块