_Never_

I walk slowly,but I will never stop.

导航

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;
}

posted on 2012-04-18 22:01  _Never_  阅读(331)  评论(0编辑  收藏  举报