浙大计算机研究生复试上机考试-2007年_Prim_Kruskal_hdoj1863

http://acm.hdu.edu.cn/showproblem.php?pid=1863

//Problem : 1863 ( 畅通工程 )     Judge Status : Accepted
//RunId : 19221043    Language : G++    Author : 311309030328
//Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta
#include
#include
#include
using namespace std;
const int MAXN=110;

int pre[MAXN];

struct node
{
    int u,v,val;
}edge[MAXN];//结构体数组

int cmp(node x, node y)
{
    return x.val 
#include

#define MAXN 110
#define INF 0xffff

int edge[MAXN][MAXN];
int visit[MAXN];
int lowcost[MAXN];
int n;
int Prim()
{
    int i,j,k;
    int sum=0;
    int min;
    for(i=1;i<=n;i++) 
    {
        lowcost[i]=edge[i][1];
        visit[i]=0;
    }
    for(i=1;i<=n;i++) 
    {
        min=INF;
        for(j=1;j<=n;j++) 
        {
            if(!visit[j] && lowcost[j]edge[k][j])
            {
                lowcost[j]=edge[k][j];
            }
        }
    }
    return sum;
}

int main()
{
    int m;
    while(~scanf("%d%d",&m,&n),m)
    {
        int i,j,a,b,c;
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                if(i==j)
                    edge[i][j]=0;
                else
                    edge[i][j]=edge[j][i]=INF;
            }
        }
        for(i=1;i<=m;i++) 
        {
            scanf("%d%d%d",&a,&b,&c);
            if(edge[a][b]>c)
            {
                edge[a][b]=edge[b][a]=c;
            }
        }
        int temp=Prim();
        if(temp!=-1)
        {
            printf("%d\n",temp);
        }
        else
        {
            printf("?\n");
        }
    }
    
    return 0;
}
*/


你可能感兴趣的:(DataStructure)