您的位置:首页 > 运维架构

UVa 10048 Audiophobia(Floyed变形)

2017-10-09 23:39 423 查看
/*
+改为max,想想就想过来了,要存最大噪音,但要找最小的路径。
*/
#include <iostream>
#include <cstdio>
#include <map>
#include <string>
#include <cstring>
using namespace std;
const int maxn=105;
const int inf=1000000;
int d[maxn][maxn];
int n;
void Floyed(){
for(int k=0;k<n;k++)
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
d[i][j]=min(d[i][j],max(d[i][k],d[k][j]));
}
int main(){
int s,q,cases=0;
while(scanf("%d%d%d",&n,&s,&q)&&(n+s+q)){
fill(d[0],d[0]+maxn*maxn,inf);
for(int i=0;i<n;i++)
d[i][i]=0;
for(int i=0;i<s;i++){
int x,y,val;
scanf("%d%d%d",&x,&y,&val);
d[x-1][y-1]=d[y-1][x-1]=val;
}
if(cases) cout<<endl;
printf("Case #%d\n",++cases);
Floyed();
for(int i=0;i<q;i++){
int a,b;
scanf("%d%d",&a,&b);
if(d[a-1][b-1]==inf)
printf("no path\n");
else
printf("%d\n",d[a-1][b-1]);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: