→题目链接←
我简直太弱了
floyd都不会写了
orz神奇的算法
代码:
#include<iostream>
#include<cstdio>
#define inf 9999999
using namespace std;
int n,m,T;
int Min[330][330];
int main(){
scanf("%d%d%d",&n,&m,&T);
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(i==j)Min[i][j]=0;
else Min[i][j]=inf;
}
}
for(int i=0; i<m; i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
Min[x][y]=z;
}
for(int k=1; k<=n; k++){
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
Min[i][j]=min(Min[i][j],max(Min[i][k],Min[k][j]));
}
}
}
while(T--){
int x,y;
scanf("%d%d",&x,&y);
if(Min[x][y]==inf)printf("-1\n");
else printf("%d\n",Min[x][y]);
}
return 0;
}