标签:
问题描述
输入
输出
样例输入
5 5 1 2 20 2 3 30 3 4 20 4 5 20 1 5 100
样例输出
90
dijkstra的模板
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 using namespace std; 5 const int N=1001; 6 const int inf=1<<29; 7 int n,m,u,v,c; 8 int w[N][N],d[N]; 9 bool vis[N]; 10 void dij() 11 { 12 for(int i=1; i<=n; i++) 13 { 14 d[i]=inf; 15 } 16 d[1]=0; 17 for(int i=0; i<n; i++) 18 { 19 int now=inf; 20 int x; 21 for(int j=1; j<=n; j++) 22 { 23 if(!vis[j]&&now>d[j]) 24 { 25 now=d[j]; 26 x=j; 27 } 28 } 29 vis[x]=1; 30 for(int j=1; j<=n; j++) 31 { 32 if(!vis[j]&&d[j]>d[x]+w[x][j]) 33 { 34 d[j]=d[x]+w[x][j]; 35 } 36 } 37 } 38 } 39 int main() 40 { 41 while(scanf("%d%d",&m,&n)!=EOF) 42 { 43 memset(vis,0,sizeof(vis)); 44 for(int i=1; i<=n; i++) 45 { 46 for(int j=1; j<=n; j++) 47 { 48 w[i][j]=inf; 49 } 50 } 51 for(int i=1; i<=m; i++) 52 { 53 scanf("%d%d%d",&u,&v,&c); 54 if(c<w[u][v]) 55 w[u][v]=w[v][u]=c; 56 } 57 dij(); 58 printf("%d\n",d[n]); 59 } 60 return 0; 61 }
POJ-2387-Til the Cows Come Home
标签:
原文地址:http://www.cnblogs.com/tianmin123/p/4783931.html