3 solutions
-
0
重要的事情说三遍:63 63 63 999999999 999999999 999999999
#include <bits/stdc++.h> using namespace std; int dis[250][250]; int n,m,k,f,x,y; int main(){ cin>>n>>m>>f; memset(dis,63,sizeof dis); //cout<<dis[1][1]; for(int i=1;i<=n;i++)dis[i][i]=0; for(int i=1;i<=m;i++){ int u,v,w; cin>>u>>v>>w; dis[u][v]=min(w,dis[u][v]); } for(k=1;k<=n;k++)//中转站0~k for(int i=1;i<=n;i++) //i为起点 for(int j=1;j<=n;j++) //j为终点 if(dis[i][j]>dis[i][k]+dis[k][j])//松弛操作 dis[i][j]=dis[i][k]+dis[k][j]; while(f--){ cin>>x>>y; if(dis[x][y]>999999999) cout<<"impossible"<<endl; else cout<<dis[x][y]<<endl; } return 0; }
Information
- ID
- 1850
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 1
- Tags
- # Submissions
- 135
- Accepted
- 38
- Uploaded By