1 条题解
-
0
Guest
-
0
#include<bits/stdc++.h> using namespace std; const int INF=0x3f3f3f3f; int d[205][205]; int n,m,q; void Floyd(){ for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(d[i][k]<INF&&d[k][j]<INF){ d[i][j]=min(d[i][j],d[i][k]+d[k][j]); } } } } } int main(){ cin>>n>>m>>q; memset(d,0x3f,sizeof(d)); for(int i=1;i<=n;i++) d[i][i]=0; for(int i=0;i<m;i++){ int u,v,w; cin>>u>>v>>w; d[u][v]=min(d[u][v],w); } Floyd(); for(int i=0;i<q;i++){ int x,y; cin>>x>>y; if(d[x][y]==INF) cout<<"impossible"<<endl; else cout<<d[x][y]<<endl; } return 0; }
- 1
信息
- ID
- 8504
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者