首页 > 其他 > 详细

hdu 1233 还是畅通工程

时间:2014-06-05 01:16:28      阅读:383      评论:0      收藏:0      [点我收藏+]

题目:

        链接:点击打开链接

题目:

        中文

思路:

算法:

        最小生成树,wa...................wa了好多次,就因为我的边序号原来是从0........m,悲催了...............................

代码

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
#define MAXN 5050

int ans,n,m;
int root[MAXN];
int u[MAXN],v[MAXN],w[MAXN];
int r[MAXN];

int cmp(const int i,const int j)
{
    return w[i] < w[j];
}

int find(int x)
{
    return root[x] == x ? x : root[x] = find(root[x]);
}

void kruskal()
{
    ans = 0;
    for(int i=1; i<=n; i++)
        root[i] = i;
    for(int i=1; i<=m; i++)
        r[i] = i;
    sort(r+1,r+m+1,cmp);
    for(int i=1; i<=m; i++)
    {
        int e = r[i];
        int x = find(u[e]);
        int y = find(v[e]);
        if(x != y)
        {
            ans += w[e];
            root[x] = y;
        }
    }
    printf("%d\n",ans);
}

int main()
{
    //freopen("input.txt","r",stdin);
    while(scanf("%d",&n) != EOF && n)
    {
        m = n*(n-1)/2;
        for(int i=1; i<=m; i++)
        {
            scanf("%d%d%d",&u[i],&v[i],&w[i]);
        }
        kruskal();
    }
    return 0;
}


hdu 1233 还是畅通工程,布布扣,bubuko.com

hdu 1233 还是畅通工程

原文:http://blog.csdn.net/u013147615/article/details/27183885

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!