[USACO07NOV]牛栏Cow Hurdles

题目

解题思路:

今天突然迷上了最短路的题目
本来想巩固一下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;
}

猜你喜欢

转载自blog.csdn.net/qq_39798042/article/details/82194275
今日推荐