杭电最短路径题

标题:杭电最短路径题

#include
using namespace std;
static int  a=10001;
int inf=999999999;
int map[1001][1001];
int main(){
	int i,j;
	int n,m;
	int a,b,c;

	
	while(cin>>n>>m,n||m){            
		for(i=1;i<=n;i++){
		for(j=1;j<=n;j++){
			if(i==j) map[i][j]=0;
			else map[i][j]=inf;
		}
	}
		for(i=0;i<m;i++){
		cin>>a>>b>>c;
		map[a][b]=c;
		map[b][a]=c;
	}
	for(int 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;;	
	}	
	
}

你可能感兴趣的:(笔记)