poj Cow Hurdles floyd基础题!!!!

 
#include<iostream>
using namespace std;
int map[305][305];
int min(int x,int y)
{
	return x>y ? y:x;
}
int main()
{
	int n,m,t,s,e,h,x,y;
	while(cin>>n>>m>>t)
	{
		for(int i=0;i<305;i++)
		{
			for(int j=0;j<305;j++)
			{
				map[i][j]=0x7FFFFFFF;
			} 
			map[i][i]=0;//注意自己到自己就是0了			
		}
		while(m--)
		{
			scanf("%d%d%d",&s,&e,&h);
			map[s][e]=h;
		}
		for(int k=1;k<=n;k++)
		{
			for(int i=1;i<=n;i++)
			{
				for(int j=1;j<=n;j++)
				{
					int temp= max(map[i][k],map[k][j]);
					map[i][j]=min(map[i][j],temp);
				}
			}
		}
		
		while(t--)
		{
			scanf("%d%d",&x,&y);
			if(map[x][y]==0x7FFFFFFF)
			map[x][y]=-1;
			printf("%d\n",map[x][y]);
		}
	}
	return 0;
}
		
			
	

你可能感兴趣的:(poj Cow Hurdles floyd基础题!!!!)