Link:
http://poj.org/problem?id=1797
Code:
#include <iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<queue>#include<vector>#include<algorithm>using namespacestd;#defineN 1100#defineINF 0x3f3f3f3f3fintN, M, Dist[n], g[n][n], v[n];intDIST (intSintE) {dist[1]=0; v[1]=1; for(intI=1; i<=n; i++) Dist[i]= g[1][i]; for(intI=1; i<=n; i++) { intindex=-1, max=-1; for(intj=1; j<=n; J + +) { if(v[j]==0&& dist[j]>MAX) {Index= J, MAX =Dist[j]; }} V[index]=1; for(intj=1; j<=n; J + +) { if(v[j]==0) { intTMP =min (Dist[index], g[index][j]); if(tmp>Dist[j]) dist[j]=tmp; } } } returndist[e];}intMain () {intT, k=1; scanf ("%d", &t); while(t--) { intA, B, W, I; scanf ("%d%d", &n, &m); memset (V,0,sizeof(v)); memset (G,-1,sizeof(G)); for(i=1; i<=m; i++) {scanf ("%d%d%d", &a, &b, &W); G[A][B]=g[b][a]=Max (G[a][b], W); } intAns = DIST (1, N); printf ("Scenario #%d:\n", k++); printf ("%d\n\n", ans); } return 0;}
Poj--1797--heavy Transportation (Shortest way)