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

求大神看一下,总是runtime error,然而并不知道错哪里了~急急急

Posted by qinxiuxin123 at 2016-09-02 22:03:13 on Problem 1258
#include<stdio.h>
#include<iostream>
#include<string.h>
#include<algorithm>

struct EDG
{
    int u, v, value;
};

const int maxn = 103;
int N;
int ans = 0;
int par[maxn];
int Rank[maxn];
EDG edg[maxn];


int Find(int u)
{
    if(u = par[u])
        return u;
    return Find(par[u]);
}
void Union(EDG e)
{
    int x = Find(e.u);
    int y = Find(e.v);
    if(x == y)
        return ;
    if(Rank[x] < Rank[y])
        par[x] = y;
    else
    {
        if(Rank[x] == Rank[y])
            Rank[y]++;
        par[y] = x;
    }

    ans += e.value;
}
bool comp(EDG a, EDG b)
{
    return a.value < b.value;
}
void init()
{
    for(int i = 1; i <= N; i++)
      {
          Rank[i] = 0;par[i] = i;
      }
}
using namespace std;

int  main(void)
{
    int cost = 0;
    int cnt = 0;
    while(scanf("%d", &N) != EOF)
    {
        for(int i = 1; i <= N; i++)
        {
            for(int j = 1; j <= N; j++)
            {

                scanf("%d", &cost);
                if(i > j)
                {
                    edg[cnt].u = i,edg[cnt].v = j, edg[cnt].value = cost;
                    cnt++;
                }
            }
        }
        init();
         ans  = 0;
        sort(edg, edg+cnt, comp);
        for(int i = 0; i < cnt; i++)
        {
            Union(edg[i]);
        }
        cout<<ans<<endl;
    }
    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