2 条题解

  • 0
    @ 2025-10-8 16:50:20
    #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
      @ 2025-10-8 16:50:11
      #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

      *【多源最短路floyd 】图的中心点

      信息

      ID
      405
      时间
      3000ms
      内存
      128MiB
      难度
      4
      标签
      递交数
      75
      已通过
      32
      上传者