1 条题解

  • 0
    @ 2025-10-8 17:00:37
    #include<bits/stdc++.h>
    using namespace std;
    int a[310][310];
    int main()
    {
        //freopen("a.in","r",stdin);    freopen("a.out","w",stdout);
        int n,m,q;scanf("%d%d%d",&n,&m,&q);
        memset(a,63,sizeof(a));
        for(int i=1;i<=n;i++)a[i][i]=0; 
        for(int i=1,x,y,c;i<=m;i++)
        {
            scanf("%d%d%d",&x,&y,&c);
            if(a[x][y]>c)a[x][y]=c;
        }
        for(int k=1;k<=n;k++)//先枚举中间点 
            for(int i=1;i<=n;i++)if(i!=k)//再枚举出发点 
                for(int j=1;j<=n;j++)if(j!=k&&j!=i)//最后枚举结束点 
                    a[i][j]=min(a[i][j],max(a[i][k],a[k][j]));
          
        for(int i=1,x,y;i<=q;i++)
        {
            scanf("%d%d",&x,&y);
            if(a[x][y]>1000000)printf("-1\n");else printf("%d\n",a[x][y]);
        }
        return 0;
    }
    
    • 1

    D04 【多源最短路floyd】[USACO07NOV] Cow Hurdles S

    信息

    ID
    2277
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    91
    已通过
    35
    上传者