並查集Find函式

2021-09-10 22:16:15 字數 540 閱讀 8386

void find(int x)

int find(int x)

while(p != x)

return x;

}

並查集的應用有很多這裡給大家推薦一道很好的題。

這道題的**如下:

int pre[maxn], maxx[maxn], num[maxn]; 

int find(int x)

while(p != x)

return x;

}void join(int x, int y)

}int main()

int set = n;

while(m--)

}else if(str[0] == 's' && str[1] == 'a')

else if(str[0] == 'n')

else if(str[0] == 'm')else

} }return 0;

}

這個題就很好的展示了並查集的一些基本操作。

並查集之 Find函式

發現自己寫了兩道題都把find函式寫得一塌糊塗。一題是沒有路徑壓縮過不了,一題是因為前面寫錯過弄混了,不三不四的。總結很重要啊!路徑壓縮 遞迴寫法 int find int x return father x 非遞迴寫法 int find int x return x 一般寫法 非遞迴遞迴 int ...

並查集 並查集

本文參考了 挑戰程式設計競賽 和jennica的github題解 陣列版 int parent max n int rank max n void init int n int find int x else void union int x,int y else 結構體版 struct node ...

並查集入門(普通並查集 帶刪除並查集 關係並查集)

什麼是並查集?通俗易懂的並查集詳解 普通並查集 基礎並查集 例題 題解 how many tables problem description lh boy無聊的時候很喜歡數螞蟻,而且,還給每乙隻小螞蟻編號,通過他長期的觀察和記錄,發現編號為i的螞蟻會和編號為j的螞蟻在一起。現在問題來了,他現在只有...