题解
2025-08-24 14:12:15
发布于:浙江
5阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int n,m,k,ans=0;
int a[1001][1001];
int main(){
cin>>n>>m>>k;
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++)a[i][j]=1e9;
}
for(int i = 1;i <= m;i++){
int o,p,q;
cin>>o>>p>>q;
a[o][p]=q;
}
for(int k1 = 1;k1 <= n;k1++){
for(int i = 1;i <= n;i++){
for(int j = 1;j <= n;j++){
a[i][j]=min(a[i][j],a[i][k1]+a[k1][j]);
}
}
}
for(int i = 1;i <= k;i++){
int qw,qe;
cin>>qw>>qe;
if(a[qw][qe]==1e9){
cout<<"impossible"<<endl;
continue;
}
cout<<a[qw][qe]<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个