EOJ 5 Bad Cowtractors

 

/*最大生成树 

注意重边

*/

#include <iostream>

#include <cstring>

using namespace std;

int vis[1050],dis,edge[1050][1050],lowc[1050],n,m;

int prim()

{

    int i,j,p,maxc,res=0;

    memset(vis,0,sizeof(vis));

    vis[0]=1;

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

        lowc[i]=edge[0][i];

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

    {

        maxc=0;

        p=-1;

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

        {

            if(!vis[j] && lowc[j]>maxc)

            {

                maxc=lowc[j];

                p=j;

            }

        }

        if(maxc==0)

            return -1;

        res+=maxc;

        vis[p]=1;

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

            if(!vis[j] && lowc[j]<edge[p][j])

                lowc[j]=edge[p][j];

    }

    return res;

}

 

int main()

{

    int i,j,x,y,z;

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

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

    {

        scanf("%d%d%d",&x,&y,&z);

        x--;

        y--;

        if(edge[x][y]<z)

            edge[y][x]=edge[x][y]=z;

    }

    printf("%d/n",prim());

    return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值