题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1641

解:floyd裸题。。。

程序:

#include<iostream>
#include<cstdio>
#include<cstring>
#define INF 2100000000
using namespace std;
int n,m,t,f[500][500];
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) f[i][j]=INF;
  int s,e,h;
  for (int i=1;i<=m;i++)
  {
      scanf("%d%d%d",&s,&e,&h);
      f[s][e]=min(f[s][e],h);
  }
  int 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)) 
    f[i][j]=min(f[i][j],max(f[i][k],f[k][j]));
  for (int i=1;i<=t;i++)
  {
      scanf("%d%d",&x,&y);
      if (f[x][y]!=INF) printf("%d\n",f[x][y]);
      else printf("-1\n");
  }
  return 0;
}

 

posted on 2017-04-03 01:09  nhc2014  阅读(118)  评论(0编辑  收藏  举报