POJ 1125 Stockbroker Grapevine
2013-10-03 22:15
375 查看
多源最短路径(Floyd暴力求解~)
#include <iostream> #include <cstdio> using namespace std; const int maxn = 9; const int maxint = 1000000000; int f[maxn][maxn], n; void floyd() { for( int k = 1; k <= n; k++ ) for( int i = 1; i <= n; i++ ) for( int j = 1; j <= n; j++ ) if( f[i][j] > f[i][k] + f[k][j] ) f[i][j] = f[i][k] + f[k][j]; } int main() { while( ~scanf( "%d", &n ), n ) { int t, y, temp; if( n == 1 ) { printf( "1 0\n" ); continue; } for( int i = 0; i < maxn; i++ ) for( int j = 0; j < maxn; j++ ) f[i][j] = maxint; for( int i = 1; i <= n; i++ ) { scanf( "%d", &t ); for( int j = 1; j <= t; j++ ) { scanf( "%d%d", &y, &temp ); f[i][y] = temp; } } floyd(); int tm = maxint; int mx, per; for( int i = 1; i <= n; i++ ) { mx = 0; for( int j = 1; j <= n; j++ ) if( i != j ) mx = mx < f[i][j] ? f[i][j] : mx; if( tm > mx ) { tm = mx; per = i; } } if( tm != maxint) printf( "%d %d\n", per, tm ); else printf( "disjoint\n" ); } return 0; }
相关文章推荐
- poj 1125 Stockbroker Grapevine (最短路径)
- poj 1125 Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine (dij优化 0ms)
- POJ_1125_Stockbroker Grapevine_最短路径
- POJ1125 Stockbroker Grapevine
- poj 1125 -- Stockbroker Grapevine (最短路)
- POJ1125 Stockbroker Grapevine(最短路径)
- POJ 1125 Stockbroker Grapevine 最短路 难度:0
- POJ 1125_Stockbroker Grapevine
- poj 1125 Stockbroker Grapevine
- poj-1125 Stockbroker Grapevine *
- POJ 1125 Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- poj——1125——Stockbroker Grapevine
- POJ 1125 Stockbroker Grapevine
- POJ 1125 - Stockbroker Grapevine
- poj_1125_Stockbroker Grapevine
- POJ 1125-Stockbroker Grapevine-最短路
- poj 1125 Stockbroker Grapevine
- Poj 1125 Stockbroker Grapevine