Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

第一次用krusal算法,尽然出乎我想象的过了,果然比prim 算法好用。谢谢学姐。。。。

Posted by hongbinneu at 2009-04-08 12:08:21 on Problem 3723
#include <iostream>
#include <algorithm>

using namespace std;

struct re
{
    int g;
    int b;
    int w;
};           

int n, m, r;
re res[100005];
int fa[100005];

bool cmp(re r, re r1)
{
    if (r.w > r1.w) return true;
    return false;
}
void init_set(int n)
{
    for (int i = 0; i < n; i++)
    {
        fa[i] = -1;
    }
}


int find_set(int a)
{
    if (fa[a] < 0) return a;
    return find_set(fa[a]);
}

int union_set(int a, int b)
{
    int aa = find_set(a);
    int bb = find_set(b);
    if (fa[aa] <= fa[bb])
    {
        fa[aa] += fa[bb];
        fa[bb] = aa;
    }
    else
    {
        fa[bb] += fa[aa];
        fa[aa] = bb;
    }
}
int main()
{
    //freopen("in.txt", "r", stdin);freopen("out.txt", "w", stdout);
    
    int cases;
    
    
    scanf("%d", &cases);
    while (cases--)
    {
        scanf("%d%d%d", &n, &m ,&r);
        
        for (int i = 0; i < r; i++)
        {
            scanf("%d%d%d", &res[i].g, &res[i].b, &res[i].w);
            res[i].b += n;
        }
        //int sum = 0;
        /*for (int i = 0; i < r; i++)
        {
            sum += res[i].w;
        }*/
        //printf("%d\n", (m + n) * 10000 - sum);
        
        init_set(n + m);
        __int64 sum = 0;
        sort(res, res + r, cmp);
        for (int i = 0; i < r; i++)
        {
            int aa = find_set(res[i].g);
            int bb = find_set(res[i].b);
            
            if (aa != bb)
            {
                sum -= res[i].w;
                union_set(aa, bb);
            }
        }
        printf("%I64d\n", (n + m) * 10000 + sum);
    }
    

    
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator