题目
解题思路:
今天突然迷上了最短路的题目
本来想巩固一下SPFA(毕竟老师讲课的那次我请假了)
结果看到了Floyd的题目,于是也一起做了
Accepted code:
#include<cstdio>
#include<cctype>
#include<cstring>
#include<algorithm>
#define inf 1000000000
using namespace std;
int n,m,t,a[301][301];
inline void read(int &f) {
f=0; char c=getchar();
while(!isdigit(c)) c=getchar();
while(isdigit(c)) f=f*10+c-48,c=getchar();
return;
}
int main() {
read(n); read(m); read(t);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++) a[i][j]=inf;
for (int i=1;i<=m;i++) {
int x,y;
read(x);read(y);read(a[x][y]);
}
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (i!=j&&j!=k&&i!=k)
a[i][j]=min(a[i][j],max(a[i][k],a[k][j]));
for (int i=1;i<=t;i++) {
int x,y; read(x);read(y);
if (a[x][y]<inf) printf("%d\n",a[x][y]);
else printf("-1\n");
}
return 0;
}