码迷,mamicode.com
首页 > 其他好文 > 详细

模板——Dijkstra

时间:2017-09-11 18:01:02      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:bre   its   判断   cout   bit   amp   space   return   using   

#include<bits/stdc++.h>
using namespace std;
int n,m,mp[1001][1001],s[1001]; bool judge[1001]={0}; //judge表示判断点是否有用过,s[i]表示1到点i的最短路径,mp表示两点的距离
int main(){ cin>>n>>m; for (int i=1; i<=n; i++){ for (int l=1; l<=n; l++){ mp[i][l]=1e9; } } for (int i=1; i<=n; i++) s[i]=1e9; for (int i=1; i<=m; i++){ int x,y,z; cin>>x>>y>>z; mp[x][y]=z; } for (int i=2; i<=n; i++) s[i]=mp[1][i]; s[1]=0; judge[1]=true; for (int i=1; i<=n; i++){ int mina=1e9,pos=0; for (int l=1; l<=n; l++){ if (judge[l]==0 && mina>s[l]){ mina=s[l]; pos=l; } } if (pos==0) break; judge[pos]=1; for (int l=1; l<=n; l++){ if (mp[pos][l]!=1e9 && s[l]>s[pos]+mp[pos][l]) s[l]=s[pos]+mp[pos][l]; } } cout<<s[n]; return 0; }

模板——Dijkstra

标签:bre   its   判断   cout   bit   amp   space   return   using   

原文地址:http://www.cnblogs.com/cain-/p/7505661.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!