题目描述
你来到Mars上开疆扩土。
Mars上一共有个城镇,从到编号。Mars上还有条双向铁路,从到编号。
你是一个疯狂的基建爱好者。除了铁路网络,你还有一个公路网络。对于每一对不同的城镇和,和之间存在一条双向公路当且仅当它们之间没有铁路。从任意城镇出发,经过一条铁路/公路前往其他的城镇总是需要1小时。
一列火车和一辆公共汽车同时离开城镇。火车只能沿铁路行驶,公共汽车只能沿公路行驶。它们都有相同的目的地,即城镇,并且在途中不做任何停留,但可以在城镇等待。
你正在为火车和公共汽车规划路线。火车/公共汽车可以多次经过任何公路/铁路。你需要考虑的最重要方面之一是安全:为了避免在道路口发生事故,火车和公共汽车不得同时到达同一个城镇(城镇除外)。
在这些限制条件下,你需要求出两辆车到达城镇所需的最少小时数,即使得公共汽车和火车到达时间的较大值最小。请注意,公共汽车和火车不必同时到达城镇。
输入格式
输入的第一行包含两个整数和,分别是城镇的数量和铁路的数量。
接下来的行中的每一行包含两个整数和,表示城镇和之间存在一条双向铁路()。 任何两个城镇之间最多有一条铁路。
输出格式
输出一个整数,表示答案。 如果至少有一辆车辆不可能到达城镇,则输出-1。
i n p u t input input
4 2
1 3
3 4
o u t p u t output output
2
由题可知,在每两个城镇之间都会有一条道路。
铁路或者公路其中之一包括1到n这条边。
假如铁路包括1到n这条边,那么火车可以在1小时内到达城镇n。
所以只需要求汽车沿着公路从1到n的最短路。
只需要判断1-n之间是公路还是铁路,然后跑另一种路的最短路就可以了。
c o d e code code
#include<bits/stdc++.h>
using namespace std;
const int N=5e3+10;
int l[N],len,n,m,dis[10000],vis[10000],f,mp[N][N];

在Mars上,你负责规划火车和公共汽车的路线,以避免它们在城镇相遇造成事故。给定城镇数量、铁路数量及铁路连接信息,目标是找出使两者到达最后一个城镇时间差最小的方案。如果无法到达,输出-1。解决方案涉及图论,求解火车沿铁路和汽车沿公路的最短路径。
最低0.47元/天 解锁文章
2750

被折叠的 条评论
为什么被折叠?



