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

测试数据都过了,为神马RE。。。伤心!求大神指点

Posted by du123 at 2013-02-17 21:54:14 on Problem 1251
#include<stdio.h>
#include<algorithm>
#include<stdlib.h>
#include <iostream>
using namespace std;

int p[30];
int r[110];
int u[110];
int v[110];
int w[110];

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

void init_set(int n)
{
    int i;
    int m = n * (n - 1) / 2;
    for(i = 0; i < n; i++)
        p[i] = i;
    for(i = 0; i < m; i++)
        r[i] = i;
}

int find_set(int x)
{
    if(x != p[x])
        p[x] = find_set(p[x]);
    return p[x];
}

int main()
{
    int i;
    int cnt;
    int j;
    int n;
    char place[2];
    char place2[2];
    int dis;
    int t;
    int m;
    int e;
    int x;
    int y;
    int ans;
    int cou;
    while(scanf("%d", &n), n)
    {
        t = 0;
        cou = 0;
        m = 0;
        ans = 0;
        for(i = 0; i < n - 1; i++)
        {
            scanf("%s%d", place, &cnt);
            m += cnt;
            while(cnt--)
            {
                scanf("%s%d", place2, &dis);
                u[t] = place[0] - 'A';
                v[t] = place2[0] - 'A';
                w[t] = dis;
                t++;
            }
        }
        init_set(n);
        sort(r, r + m, cmp_set);
        i = 0;
        for(i = 0; i < m; i++)
        {
            e = r[i];
            x = find_set(u[e]);
            y = find_set(v[e]);
            if(x != y)
            {
                ans += w[e];
                p[x] = y;
                cou++;
            }
        }
        cout<<ans<<endl;
    }
    system("pause");
    return 0;
}

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