/*
题目大意:
从一个点到达另一个点有多条路径,求这多条路经中最大噪音值的最小值! 、
思路:最多有100个点,然后又是多次查询,想都不用想,Floyd算法走起!
*/
#include<iostream>
#include<cstring>
#include<cstdio>
#define INF 0x3f3f3f3f
using namespace std;
int map[105][105];
int main(){
int n, m, q;
int u, v, d;
int cnt=0;
scanf("%d%d%d", &n, &m, &q);
while((n || m || q)){
memset(map, 0x3f, sizeof(map));
while(m--){
scanf("%d%d%d", &u, &v, &d);
map[u][v]=map[v][u]=d;
}
for(int k=1; k<=n; ++k)
for(int i=1; i<=n; ++i)
for(int j=1; j<=n; ++j){
int dd=max(map[k][j], map[i][k]);
if(map[i][j] > dd)
map[i][j] = dd;
}
printf("Case #%d\n", ++cnt);
while(q--){
scanf("%d%d", &u, &v);
if(map[u][v]==INF)
printf("no path\n");
else
printf("%d\n", map[u][v]);
}
scanf("%d%d%d", &n, &m, &q);
if((n || m || q))
printf("\n");
}
return 0;
}
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3898468.html,如需转载请自行联系原作者
本文介绍了一种使用Floyd算法解决从一个点到另一个点寻找路径中最大噪音值最小值的问题。适用于100个点以内的图,并通过多次查询优化路径。
717

被折叠的 条评论
为什么被折叠?



