floyd算法:

#include"iostream"
using namespace std;
int map[101][101];
int n,m;
int main()
{
 int i,j,k;
 int x,y,t;
 while(cin>>n>>m)
 {
        if(n==0&&m==0)
   break;
  for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
    map[i][j]=map[j][i]=1000000;
  for(i=1;i<=m;i++)
  {
   cin>>x>>y>>t;
   map[x][y]=map[y][x]=t;
  }
  for(k=1;k<=n;k++)
   for(i=1;i<=n;i++)
    for(j=1;j<=n;j++)
     if(map[i][j]>map[i][k]+map[k][j])
      map[i][j]=map[i][k]+map[k][j];
  cout<<map[1][n]<<endl;
 }
 return 0;
}

 

posted on 2012-07-08 11:55  xinmenghuairi  阅读(263)  评论(0编辑  收藏  举报