?
求所有路径中承载量的最小值的最大值
?
#include
#include
#include
#include
#include
using namespace std; const int MAXV = 4010; const int inf = 10000000; int map[MAXV][MAXV]; int d[MAXV]; bool vis[MAXV]; int n,m; void dijkstra(int s) { for(int i=1;i<=n;i++) { vis[i]=0; d[i]=map[s][i]; } while (1) { int minn = 0; int v = -1; for(int i=1;i<=n;i++) if(!vis[i] && d[i] > minn) { v=i; minn=d[i]; } if(v == -1) break; vis[v]=1; for(int i=1;i<=n;i++) if(!vis[i] && d[i] < min(d[v] , map[v][i])) d[i] = min(map[v][i],d[v]); } } int main() { int i,j,a,b,c,t; int cases = 1; scanf(%d,&t); while(t--) { scanf(%d%d,&n,&m); memset(map,0,sizeof(map)); while (m--) { scanf(%d %d %d,&a,&b,&c); map[a][b] = map[b][a] = c; } dijkstra(1); printf(Scenario #%d: ,cases++); printf(%d ,d[n]); } return 0; }
?