计蒜客 蒜头君的训练室

蒜头君的训练室包含N个站点和M条单向边,每条边带有不同高度的围栏。面对T个任务,需要找出从Ai到Bi的路径中最高围栏的最小值。当无法到达时,输出-1。解题策略涉及寻找两点间路径的最高障碍物最小值更新方法。
摘要由CSDN通过智能技术生成

问题描述

蒜头君的训练室有 N 个站点,另外有 M 条单向边连接这些站点。第 i 条路从 Si站到 Ei站,有高度为 Hi的围栏,蒜头君是需要跳跃的。 
现在蒜头君们有 T 个任务要完成。第 ii 个任务,蒜头君要从 Ai站到 Bi站,蒜头君想要他们路径中最高围栏尽可能小。请你确定这个高度。 
输入格式 
第一行输入三个整数 N, M, T。(1≤N≤300,1≤M≤25000,1≤T≤40000)。 
接下来 M 行,每行三个整数 Si,Ei,Hi(1≤Si,Ei≤N,1≤Hi≤10e6) 
再接下来 T 行,每行两个整数 Ai,Bi。(1≤Ai,Bi≤N) 
除了这 M 组关系,其他任意两人之间均不相识。 
输出格式 
对于每个询问,输出最小的最大高度。若无法到达,则输出−1。 
样例输入 
5 6 3 
1 2 12 
3 2 8 
1 3 5 
2 5 3 
3 4 4 
2 4 8 
3 4 
1 2 
5 1 
样例输出 


-1

解题思路:不断更新两个点之间可到路径的最高障碍物的最小值
 

#include<bits/stdc++.h>
using namespace std;
const int MAX_N=310;
const int MAX_M=25010;
const int inf=0x3f3f3f3f;
int n,m,t;
int g[MAX_N][MAX_N];
void init(){
	for(int i=1;i<=n;i++){
		for(int j
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值