#include <iostream>
#include <iostream>
#include<bits/stdc++.h>
#define pb push_back
#define T 10005
using namespace std;
int p[T];
int r[T];
void ini(int n){
for(int i=0;i<n;i++){
p[i]=i;
r[i]=1;
}
}
int root(int a){
while(p[a]!=a){
p[a]=p[p[a]];
a=p[a];
}
return a;
}
void j(int a,int b){
if (a==b) return;
a=root(a);
b=root(b);
if (a == b) return;
if(r[a]>r[b]){
r[a]+=r[b];
p[b]=a;
return;
}
r[b]+=r[a];
p[a]=b;
}
bool con(int a, int b){
return p[a]==p[b];
}
int main() {
std::ios::sync_with_stdio(false);
return 0;
}
This is the solution to this UVa problem . Note: In this problem you need to be very careful with the update of the rank list
Comments
Post a Comment