1 条题解
-
0
// Floyd 算法 O(n^3) #include<bits/stdc++.h> using namespace std; const int N=1010; int n,m,a,b,c; int d[N][N]; void floyd(){ for(int k=1; k<=n; k++) for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) d[i][j]=min(d[i][j],d[i][k]+d[k][j]); } int main(){ cin>>n>>m; memset(d,0x3f,sizeof d); for(int i=1; i<=n; i++) d[i][i]=0; for(int i=0; i<m; i++){ cin>>a>>b>>c; d[a][b]=d[b][a]=min(d[a][b],c); //处理重边 } floyd(); for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) printf("%d ",d[i][j]); puts(""); } }
- 1
信息
- ID
- 692
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 6
- 标签
- 递交数
- 161
- 已通过
- 49
- 上传者