标签:
代码:
1 #include<iostream> 2 #include<stdio.h> 3 #include<stdlib.h> 4 #include<string.h> 5 #include<queue> 6 #include<vector> 7 #include<algorithm> 8 using namespace std; 9 10 #define N 1100 11 #define INF 0x3f3f3f3f3f 12 13 int n, m, dist[N], G[N][N], v[N]; 14 15 int DIST(int S, int E) 16 { 17 dist[1]=0; 18 v[1]=1; 19 20 for(int i=1; i<=n; i++) 21 dist[i] = G[1][i]; 22 23 for(int i=1; i<=n; i++) 24 { 25 int index=-1, MAX=-1; 26 27 for(int j=1; j<=n; j++) 28 { 29 if(v[j]==0 && dist[j]>MAX) 30 { 31 index = j, MAX = dist[j]; 32 } 33 } 34 v[index]=1; 35 36 for(int j=1; j<=n; j++) 37 { 38 if(v[j]==0 && dist[j]<min(dist[index], G[index][j])) 39 { 40 dist[j]=min(dist[index], G[index][j]); 41 } 42 } 43 } 44 return dist[E]; 45 } 46 47 int main() 48 { 49 int t, k=1; 50 51 scanf("%d", &t); 52 53 while(t--) 54 { 55 int a, b, w, i; 56 scanf("%d%d", &n, &m); 57 58 memset(v, 0, sizeof(v)); 59 memset(G, -1, sizeof(G)); 60 61 for(i=1; i<=m; i++) 62 { 63 scanf("%d%d%d", &a, &b, &w); 64 G[a][b]=G[b][a]=max(G[a][b], w); 65 } 66 67 int ans = DIST(1, n); 68 69 printf("Scenario #%d:\n", k++); 70 printf("%d\n\n", ans); 71 } 72 return 0; 73 }
POJ--3268--Silver Cow Party (最短路 迪杰斯特拉的变形)
标签:
原文地址:http://www.cnblogs.com/YY56/p/4660883.html