为啥爆零?悬赏一个关注
查看原帖
为啥爆零?悬赏一个关注
1210978
zky2023_sz楼主2024/8/23 10:14
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f
using namespace std;
int n,m,q;
int graph[103][103];
void init(){
    memset(graph,INF,sizeof graph);
    for(int i=0;i<=102;i++){
        graph[i][i]=0;
    }
}
void read(){
    cin>>n>>m>>q;
    for(int i=1;i<=m;i++){
        int u,v,w;
        cin>>u>>v>>w;
        if(graph[v][u]<w) continue;
        graph[v][u]=w;
        graph[u][v]=w;
    }
}
void floyd(){
    for(int c=1;c<=n;c++){
        for(int j=1;j<=n;j++){
            for(int i=1;i<=n;i++){
                graph[i][j]=min(max(graph[i][c],graph[c][j]),graph[i][j]);
            }
        }
    }
}
void output(){
    for(int i=1;i<=q;i++){
        int l,r;
        cin>>l>>r;
        if(graph[l][r]!=INF) cout<<graph[l][r]<<endl;
        else cout<<-1<<endl;
    }
}
signed main(){//P2888
    init();
    read();
    floyd();
    output();
    return 0;
}
2024/8/23 10:14
加载中...