1 条题解

  • 0
    @ 2021-8-8 10:50:08

    C++ :

    #include<stdio.h>
    #include<string.h>
    int i,j,n,m,k,x,y,mx,a[110][110];
    
    int 
    pre(void)
    {
        memset(a,1,sizeof(a));
        return 0;
    }
    
    int 
    add(int x,int y)
    {
        a[x][y]=1;
        a[y][x]=1;
        return 0;
    }
    
    int
    min(int a,int b)
    {
        if (a<b) return(a);
        else return(b);
    }
    
    int 
    init(void)
    {
        scanf("%d%d\n",&n,&m);  
        for(i=1;i<=m;i++)
        {
            scanf("%d%d",&x,&y);
            add(x,y);
        }
        return 0;
    }
    
    int 
    main(void)
    {
        pre();
        init();
        
    for(k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if ((i!=j)&&(i!=k)&&(k!=j))
                a[i][j]=min(a[i][j],a[i][k]+a[k][j]);
        
        mx=-35111111;
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
            if(i!=j)
            if (a[i][j]>mx) mx=a[i][j];
        
       printf("%d\n",mx);
        return 0;
    }
    
    • 1

    信息

    ID
    295
    时间
    1000ms
    内存
    128MiB
    难度
    10
    标签
    递交数
    6
    已通过
    6
    上传者