2 条题解
-
0
#include<bits/stdc++.h> using namespace std; int a[1100][1100]; int main() { int n﹐m;scanf("%d%d"﹐&n﹐&m); memset(a﹐0x3f﹐sizeof(a)); for(int i=1;i<=m;i++) { int x﹐y﹐c;scanf("%d%d%d"﹐&x﹐&y﹐&c); if(a[x][y]>c)a[x][y]=a[y][x]=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]﹐a[i][k]+a[k][j]); int ans=999999999﹐p; for(int i=1;i<=n;i++) { int s=0;for(int j=1;j<=n;j++)if(i!=j)s+=a[j][i]; if(s<ans)ans=s﹐p=i; } printf("%d %d\n"﹐p﹐ans); return 0; } -
0
#include<bits/stdc++.h> using namespace std; int a[1100][1100]; int main() { int n,m;scanf("%d%d",&n,&m); memset(a,0x3f,sizeof(a)); for(int i=1;i<=m;i++) { int x,y,c;scanf("%d%d%d",&x,&y,&c); if(a[x][y]>c)a[x][y]=a[y][x]=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],a[i][k]+a[k][j]); int ans=999999999,p; for(int i=1;i<=n;i++) { int s=0;for(int j=1;j<=n;j++)if(i!=j)s+=a[j][i]; if(s<ans)ans=s,p=i; } printf("%d %d\n",p,ans); return 0; }
- 1
信息
- ID
- 405
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 4
- 标签
- 递交数
- 75
- 已通过
- 32
- 上传者