bzoj 1050 codevs1001 舒适的路线[并查集]

2024-01-01 07:58

本文主要是介绍bzoj 1050 codevs1001 舒适的路线[并查集],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1001 舒适的路线 2006年
时间限制: 2 s
空间限制: 128000 KB
题目等级 : 钻石 Diamond
题解
题目描述 Description
Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。
Z小镇附近共有
N[1,500]个景点(编号为1,2,3,…,N),这些景点被M[0,5000]条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。频繁的改变速度使得游客们很不舒服,因此大家从一个景点前往另一个景点的时候,都希望选择行使过程中最大速度和最小速度的比尽可能小的路线,也就是所谓最舒适的路线。

输入描述 Input Description
第一行包含两个正整数,N和M。
接下来的M行每行包含三个正整数:x,y和v(1≤x,y≤N,0 最后一行包含两个正整数s,t,表示想知道从景点s到景点t最大最小速度比最小的路径。s和t不可能相同。

输出描述 Output Description
如果景点s到景点t没有路径,输出“IMPOSSIBLE”。否则输出一个数,表示最小的速度比。如果需要,输出一个既约分数。

样例输入 Sample Input
样例1
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
样例1
IMPOSSIBLE

样例2
5/4

样例3
2

数据范围及提示 Data Size & Hint
N(1

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
using namespace std;
const int maxn=2e4+5;
struct node
{int fin,sta,wor;
}roa[maxn*5];
int fa[maxn*2],n,m;
bool cmp(node x,node y)
{return x.wor>y.wor;
}
int lookfor(int u)
{return fa[u]=(fa[u]==u?u:lookfor(fa[u]));
}
void unio(int u,int v)
{int fu=lookfor(u),fv=lookfor(v);fa[fu]=fv;
}
void prin(int u)
{printf("%d",roa[u].wor);exit(0);
}
void work()
{for(int i=1;i<=m;i++){if(lookfor(roa[i].sta+n)==lookfor(fa[roa[i].fin+n]))prin(i);if(lookfor(roa[i].sta)==lookfor(roa[i].fin))prin(i);unio(roa[i].sta,roa[i].fin+n);unio(roa[i].fin,roa[i].sta+n);}printf("0");
}
void init()
{scanf("%d %d",&n,&m);for(int i=1;i<=2*n;i++)fa[i]=i;for(int i=1;i<=m;i++)scanf("%d %d %d",&roa[i].fin,&roa[i].sta,&roa[i].wor);sort(roa+1,roa+m+1,cmp);
}
int main()
{freopen("codevs1069.in","r",stdin);freopen("codevs1069.out","w",stdout);init();work();return 0;
}

这篇关于bzoj 1050 codevs1001 舒适的路线[并查集]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/558592

相关文章

随想录 Day 69 并查集 107. 寻找存在的路径

随想录 Day 69 并查集 107. 寻找存在的路径 理论基础 int n = 1005; // n根据题目中节点数量而定,一般比节点数量大一点就好vector<int> father = vector<int> (n, 0); // C++里的一种数组结构// 并查集初始化void init() {for (int i = 0; i < n; ++i) {father[i] = i;}

A bug‘s life 虫子的生活(带权并查集)

题目链接: 2492 -- A Bug's Life (poj.org) 题目描述: 思路: 带权并查集,处理方法基本与食物链(http://t.csdnimg.cn/fSnRr)相同,没什么思维创新 但是一开始WA了几次,有些细节没有注意好,还是需要静下心来,好好分析问题,需要警惕! 参考代码: //#include<bits/stdc++.h>#include<iostream

05-5.5.3 并查集的进一步优化

👋 Hi, I’m @Beast Cheng 👀 I’m interested in photography, hiking, landscape… 🌱 I’m currently learning python, javascript, kotlin… 📫 How to reach me --> 458290771@qq.com 喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会

泰国普吉岛与曼谷7天自由行路线与踩坑经历

本文介绍泰国6日自由行(普吉岛3日、曼谷3日)的每日详细行程、游览心得、避坑经历等。   2024年06月初,我们一行5人前往泰国普吉岛与曼谷等2地,进行了一共为期7天的旅行;其中真正花在游玩上的时间大概是5至6天。在这里就介绍一下具体的行程和相关游览的心得。   其中,泰国和国内有1个小时的时差,他们比我们晚1个小时(比如北京是晚上22:00的话,那么泰国就是同一天的晚上21:00);为

掌握Three.js:学习路线,成为3D可视化开发的高手!

学习Three.js可以按照以下路线进行: 基础知识: 首先要了解基本的Web开发知识,包括HTML、CSS和JavaScript。如果对这些知识已经比较熟悉,可以直接进入下一步。 Three.js文档: 阅读Three.js官方文档是学习的第一步。官方文档提供了详细的API参考和示例代码,可以了解Three.js的基本概念、核心功能和用法。 示例代码: 在

算法之广度优先,深度优先,拓扑,贪心,并查集

文章目录 1 图算法1.1 广度优先搜索1.2 深度优先搜索1.3 拓扑排序1.4 贪心算法1.4.1 定义1.4.2 示例 1.5 并查集(不相交集合数据结构)1.5.1 并查集讲解1.5.2 Kruskal算法1.5.3 Prim算法 1.8 Bellman-Ford算法 1 图算法 地图数据常常可以用图(Graph)这类数据结构表示,那么在图结构中常用的搜索算法也可以应用

scala自学之路-00-给自己定的大数据学习路线

因为目前公司里面需要对已经接入大数据湖中的数据做处理,就需要学习spark,而spark又是scala编写的,为了进一步理解spark api需要先学习scala。所以为自己制定以下的学习路线: 学习scala基础学习spark基础+api梳理业务流程,形成流程图,梳理出哪块需要spark sql实现,哪块需要进一步编写自定义api实现编写业务代码,测试并上线

舒适佩戴,享受沉浸式音乐体验,西圣AVA2耳机体验

平时不管是听音乐,还是打电话,戴上一副耳机都可以让我们获得更好的隐私性,并且在公共场所,比如办公室、车厢里,也可以获得属于自己的空间。现在市面上耳机的选择非常多,音质、续航和佩戴的舒适度是我们选择时主要考虑的因素。 对于那些预算有限的朋友来说,现在百元价位的蓝牙耳机选择也很多,像是我最近在用的西圣AVA2,不仅价格亲民,还在多个方面提供了令人惊喜的表现,算是很有性价比的选择。此外这款耳机的设

百万人都在求的网络安全学习路线,渗透漏洞防御总结(附图)

前言 不折腾的网络安全,和咸鱼有什么区别 目录 二、 前言三 、同源策略 3.1 什么是同源策略 3.2 为什么需要同源策略四 、XSS 4.1 概览 4.2 介绍 4.3 防御五 、CSRF 5.1 概览 5.2 介绍 5.3 防御六、 SQL 注入七 、流量劫持 7.1 DNS 劫持 7.2 HTTP 劫持八 、浏览器网络安全九、 浏览器系统安全十 、参考文献 浏览器安全可以分为三大块

NetSuite 为工艺路线定义成本类别

为工艺路线定义成本类别 为工艺路线定义成本类别直接成本费用要为制造工艺路线设置成本类别 为工艺路线定义成本类别 你可以创建八种成本类别之一用于制造工艺路线。这些成本类别帮助定义与工作单相关的费用。 例如,你有一个仓库,雇佣工作装配你销售的部件。你需要跟踪与员工人力、仓库机器相关的成本和与工作单相关的费用。 下面的成本类别可以被用来帮助跟踪这些成本: 直接成本 当你为这些物