UVA 10048 - Audiophobia
2011-11-28 22:26
465 查看
这道题和刚才那道题不同,求的是最大边的最小值。同样用了floyd算法
d[i][j]=min{d[i][j],max{d[i][k],d[k][j]}}
Initilization: d[1..n][1..n]= -1,d[i][i]=0;
http://hi.baidu.com/knowledgetime/blog/item/6c6c71c1b30d703ae5dd3bdb.html
d[i][j]=min{d[i][j],max{d[i][k],d[k][j]}}
Initilization: d[1..n][1..n]= -1,d[i][i]=0;
#include<stdio.h> #define MAXD 105 int u, v, w, C, S, Q, q[10005]; int d[MAXD][MAXD]; int max( int a, int b) { return a > b ? a : b; } void init() { for( int i = 1; i <= C; i ++) for( int j = 1; j <= C; j ++) { if( i == j) d[i][j] = 0; else d[i][j] = -1; } for( int i = 0; i < S; i ++) { scanf( "%d%d%d", &u, &v, &w); d[u][v] = d[v][u] = w; } } void floyd() { for( int k = 1; k <= C; k ++) for( int i = 1; i <= C; i ++) for( int j = 1; j <= C; j ++) if( d[i][k] != -1 && d[k][j] != -1) { int temp = max( d[i][k], d[k][j]); if( d[i][j] == -1 || d[i][j] > temp ) d[i][j] = temp; } } int main() { int cas = 0; while( true) { scanf( "%d%d%d", &C, &S, &Q); if( C == 0 && S == 0 && Q == 0) break; init(); floyd(); if( cas ++) printf( "\n"); printf( "Case #%d\n", cas); for( int i = 1; i <= Q; i ++) { scanf( "%d%d", &u, &v); q[i] = d[u][v]; } for( int i = 1; i <= Q; i ++) { if( q[i] == -1) printf( "no path\n"); else printf( "%d\n", q[i]); } } return 0; }
http://hi.baidu.com/knowledgetime/blog/item/6c6c71c1b30d703ae5dd3bdb.html
相关文章推荐
- UVA10048 Audiophobia[Floyd变形]
- UVa 10048 Audiophobia(最短路&Floyd)
- UVa 10048 Audiophobia 最短路的最大值
- UVA 10048 Audiophobia
- UVA - 10048 Audiophobia
- UVa10048_Audiophobia(最短路/floyd)(小白书图论专题)
- UVa10048 Audiophobia (Floyd)
- UVA10048-Audiophobia-最短路
- UVA 10048 Audiophobia 最小生成树
- uva 10048 Audiophobia
- uva10048 - Audiophobia
- UVa 10048 Audiophobia
- UVa 10048: Audiophobia
- UVA10048-Audiophobia
- uva 10048 Audiophobia(最小生成树)
- uva 10048 Audiophobia(最小生成树)
- UVa 10048: Audiophobia
- UVA 10048 Audiophobia
- UVa10048_Audiophobia(最短路/floyd)(小白书图论专题)
- 例题11-5 UVA - 10048 Audiophobia 噪音恐惧症(Floyd算法)