最短路

来源:互联网 发布:弘讯科技人工智能 编辑:程序博客网 时间:2024/05/16 04:05
#include <iostream>#include <cstring>using namespace std;#define N 1000#define inf 999999int Map[N][N];int dis[N];int vis[N];void D(int n){int i,j;int pos;for(i=1;i<=n;i++){dis[i]=Map[i][1];}vis[1]=1;for(i=1;i<=n-1;i++){pos=1;int min=inf;for(j=1;j<=n;j++){if(!vis[j]&&dis[j]<min){min=dis[j];pos=j;}}vis[pos]=1;for(j=1;j<=n;j++){if(!vis[j]&&dis[j]>dis[pos]+Map[j][pos])dis[j]=dis[pos]+Map[j][pos];}}if(dis[n]!=inf)cout<<dis[n]<<endl;elsecout<<"-1"<<endl;}int main(){int n,m;int a,b,x;int i,j;while(cin>>n>>m){memset(vis,0,sizeof(vis));for(i=1;i<=n;i++){for(j=1;j<=n;j++){Map[i][j]=inf;}Map[i][i]=0;}for(i=1;i<=m;i++){cin>>a>>b>>x;if(Map[a][b]>x)Map[a][b]=Map[b][a]=x;}D(n);}return 0;}

0 0
原创粉丝点击