Hdu 1233 - 还是通畅工程

最小生成树 - prim算法

 

题意:n为村庄数,n*(n-1)/ 2 为村庄之间的路数,求出最小的路的总长度。

 

AC代码:

#include 
#include 
#include 

const int max = 0x7ffffff;
int map[105][105], v[5000], low[5000];
int n,h;

int MinTree(int n)
{
    int min, sum = 0, flag, i, j, h;
    memset(v, 0, sizeof(v));
    memset(low, 0, sizeof(low));
    v[1] = 1;
    h = n*(n-1)/2;
    for(i=2; i<=n; i++)
    {
        low[i] = map[1][i];
    }
    for(i=2; i<=n; i++)
    {
        min = max;
        flag = -1;
        for(j=1; j<=n; j++)
        {
           if(!v[j] && low[j] dis)
            {
                map[a][b] = dis;
                map[b][a] = dis;
            }
        }
        printf("%d\n", MinTree(n) );
    }
    return 0;
}


 

你可能感兴趣的:(ACM)