P2888 [USACO07NOV]牛栏Cow Hurdles(Floyd算法)

P2888 [USACO07NOV]牛栏Cow Hurdles

行 1…T: 行 i 为一个整数,表示任务i路径上最高的栏的高度的最小值。如果无法到达,输出 -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
4
8
-1

注意:memset(dis,0x7f,sizeof dis);dis[0][0]=0x7f7f7f7f
但是dis必须是int型的

#include<bits/stdc++.h>
using namespace std;
#define debug(x) cout<<"# "<<x<<" "<<endl;
typedef long long ll;
const ll mod=2147483647000;
const ll N=307;
const ll INF=0x7f;
int dis[N][N],n,m,t;
int main()
{
    ll a,b,c;
    cin>>n>>m>>t;
    memset(dis,INF,sizeof dis);
    for(int i=1;i<=m;++i)
        cin>>a>>b>>c,dis[a][b]=c;
    for(int k=1;k<=n;++k)
        for(int i=1;i<=n;++i)
            for(int j=1;j<=n;++j)
                dis[i][j]=min(dis[i][j],max(dis[i][k],dis[k][j]));
    int x,y;
    for(int i=1;i<=t;++i)
    {
        cin>>x>>y;
        if(dis[x][y]==0x7f7f7f7f)cout<<"-1"<<endl;
        else cout<<dis[x][y]<<endl;
    }
    return 0;
}

全部评论

相关推荐

学历算污点吗?
小何和:快毕业了,BOSS上的od闻着味就来了
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务