UVa--10048 Audiophobia(floyd)
2016-03-29 17:32
465 查看
UVa 10048
d[i][j]=min(d[i][j],max(d[i][k],d[k][j]))
题意
求图中两点最大噪声值最小的路径。题解
Floyd算法变形一下:d[i][j]=min(d[i][j],max(d[i][k],d[k][j]))
#include <bits/stdc++.h> using namespace std; const int maxn = 105; const int inf = 1000001; int d[maxn][maxn]; int main() { #ifdef LOCAL fstream cin("data.in"); #endif // LOCAL int C, S, Q; int kcase = 0; ios::sync_with_stdio(0); cin.tie(0); while(cin >> C >> S >> Q && C) { int a, b, w; for(int i = 1; i <= C; ++i) fill(*(d + i), *(d + i) + maxn, inf); for(int i = 1; i <= C; ++i) d[i][i] = 0; for(int i = 1; i <= S; ++i) { cin >> a >> b >> w; d[a][b] = d[b][a] = w; } for(int k = 1; k <= C; ++k) for(int i = 1; i <= C; ++i) for(int j = 1; j <= C; ++j) d[i][j] = min(d[i][j], max(d[i][k], d[k][j])); if(kcase++) cout << endl; cout << "Case #" << kcase << endl; while(Q--){ cin >> a >> b; if(d[a][b] == inf) cout << "no path" << endl; else cout << d[a][b] << endl; } } return 0; }
相关文章推荐
- 1.10055 - Hashmat the brave warrior
- 2.10071 - Back to High School Physics
- 3.458 - The Decoder
- 4.694 - The Collatz Sequence
- 6.494 - Kindergarten Counting Game
- 7.490 - Rotating Sentences
- 8.414 - Machined Surfaces
- 9.488 - Triangle Wave
- A.457 - Linear Cellular Automata
- B.489 - Hangman Judge
- C.445 - Marvelous Mazes
- 1.10494 - If We Were a Child Again
- 2.424 - Integer Inquiry
- 3.10250 - The Other Two Trees
- 5.465 - Overflow
- 6.113 - Power of Cryptography
- 7.10161 - Ant on a Chessboard
- 8.621 - Secret Research
- 9.401 - Palindromes
- A.537 - Artificial Intelligence?