1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int a[310][310]; int main() { //freopen("a.in","r",stdin); freopen("a.out","w",stdout); int n,m,q;scanf("%d%d%d",&n,&m,&q); memset(a,63,sizeof(a)); for(int i=1;i<=n;i++)a[i][i]=0; for(int i=1,x,y,c;i<=m;i++) { scanf("%d%d%d",&x,&y,&c); if(a[x][y]>c)a[x][y]=c; } for(int k=1;k<=n;k++)//先枚举中间点 for(int i=1;i<=n;i++)if(i!=k)//再枚举出发点 for(int j=1;j<=n;j++)if(j!=k&&j!=i)//最后枚举结束点 a[i][j]=min(a[i][j],max(a[i][k],a[k][j])); for(int i=1,x,y;i<=q;i++) { scanf("%d%d",&x,&y); if(a[x][y]>1000000)printf("-1\n");else printf("%d\n",a[x][y]); } return 0; }
- 1
信息
- ID
- 2277
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 5
- 标签
- 递交数
- 91
- 已通过
- 35
- 上传者