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

这样可以了,只要把colorset[]换成你想要的

Posted by sunmoonstar_love at 2005-07-28 22:20:29 on Problem 2513
In Reply To:你这个并查集不能通用的吧 Posted by:frkstyc at 2005-07-28 22:11:46
int GetRoot(int x){
  if(colorset[x] < 0) return x;
  else return GetRoot(colorset[x]);
}

void Union (int a, int b){
  int rootA = GetRoot(a);
  int rootB = GetRoot(b);
 
  if(rootA == rootB) return;

  if(colorset[rootA] <= colorset[rootB]){
 
    colorset[rootA] += colorset[rootB];
    colorset[rootB] = rootA;
    }
  } else {

    colorset[rootB] += colorset[rootA];
    colorset[rootA] = rootB;
    }
  }
}

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