2 条题解
-
0
重边狡猾狡猾滴
#include<bits/stdc++.h> using namespace std; long long n, m, dis[105][105]; int main(){ cin>>n>>m; memset(dis, 0x3f3f3f3f, sizeof(dis)); for(int i=1;i<=n;i++){ dis[i][i]=0; } for(int i=1;i<=m;i++){ long long u, v, w; cin>>u>>v>>w; dis[u][v] = dis[v][u] = min(dis[u][v], (long long)w); } for(int k=1;k<=n;k++){ for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ if(dis[i][k] != 0x3f3f3f3f && dis[k][j] != 0x3f3f3f3f &&dis[i][k]+dis[k][j]<dis[i][j])dis[i][j]=dis[i][k]+dis[k][j]; } } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<dis[i][j]<<" "; } cout<<endl; } }
-
0
#include<bits/stdc++.h> #define ll long long #define endl '\n' #define up(i,j,k,l) for(int i=j;i<=k;i+=l) #define down(i,j,k,l) for(int i=j;i>=k;i-=l) using namespace std; const int N=1e2+10,INF=1e9; int n,m; int a[N][N]; int u,v,w; void solve() { cin>>n>>m; up(i,1,n,1){ up(j,1,n,1){ a[i][j]=INF; } a[i][i]=0; } up(i,1,m,1){ cin>>u>>v>>w; a[u][v]=min(a[u][v],w); a[v][u]=a[u][v]; } up(k,1,n,1){ up(i,1,n,1){ up(j,1,n,1){ a[i][j]=min(a[i][j],a[i][k]+a[k][j]); } } } up(i,1,n,1){ up(j,1,n,1){ cout<<a[i][j]<<' '; } cout<<endl; } return; } int main() { //ios::sync_with_stdio(false); //cin.tie(0); //freopen(".in","r",stdin); //freopen(".out","w",stdout); int _=1; //cin>>_; up(i,1,_,1){ solve(); } return 0; }
- 1
信息
- ID
- 4663
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 28
- 已通过
- 13
- 上传者