POJ 2139 Six Degrees of Cowvin Bacon

在宿舍,玩了好一段时间呀……

这都20天都没发表随笔了!这尼玛霸气!果断!!

今晚不想做的去看了一道题,题意读了半天,但是题很简单!竟然很顺利的AC!

思路:裸死的floyd

View Code
#include <stdio.h>

#include <memory.h>



#define N 302

#define MAXVAL 30000



int map[N][N];



void floyd(int n)

{

    int i,j,k;



    for(k=1;k<n;k++)

        for(i=1;i<n;i++)

            for(j=1;j<n;j++)

                if(map[i][k]+map[k][j]<map[i][j])

                    map[i][j]=map[i][k]+map[k][j];

}



void solve()

{

    int n,m,data[N];

    int i,j,k,num,min=0x7fffffff;



    scanf("%d %d",&n,&m);

    for(i=1;i<=n;i++)

        for(j=i+1;j<=n;j++)

            map[i][j]=map[j][i]=MAXVAL;



    for(i=0;i<m;i++)

    {

        scanf("%d",&num);

        for(j=0;j<num;j++)

        {

            scanf("%d",data+j);

            for(k=0;k<j;k++)

                map[data[k]][data[j]]=map[data[j]][data[k]]=100;

        }

    }



    floyd(n+1);



    for(i=1;i<=n;i++)

    {

        for(j=1;j<=n;j++)

        {

            map[i][0]+=map[i][j];

        }

        

        if(map[i][0]<min)

            min=map[i][0];

    }

    

    printf("%d\n",min/(n-1));

}



int main()

{

//    freopen("input.txt","r",stdin);



    solve();



    return 0;

}

你可能感兴趣的:(poj)