BZOJ 1641: [Usaco2007 Nov]Cow Hurdles

题目链接: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
",f[x][y]);
      else printf("-1
");
  }
  return 0;
}
原文地址:https://www.cnblogs.com/2014nhc/p/6660426.html