Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- // Union Find Disjoint Set
- int parents[105];
- void makeSet(){
- for( int i = 0 ; i < 105 ; ++i )
- parents[i] = i;
- }
- // normal lg(n)
- //int find( int x ){
- // if( parent[x] == x )
- // return x;
- // return find(parentes[x]);
- //}
- // ABNORMAL! lg(inverse ackermen function(n))
- int find( int x ){
- if( parents[x] != x )
- parents[x] = find(parents[x]);
- return parents[x];
- }
- int isSameSet(int x, int y){
- return find(x) == find(y);
- }
- void merge(int x, int y){
- parents[find(x)] = find(y);
- }
- int main(){
- return 0;
- }
Add Comment
Please, Sign In to add comment